mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 16:21:02 +00:00
committed by
Robert Habermeier
parent
7f2c798a06
commit
be23db6916
@@ -9,6 +9,11 @@ clap = { version = "2.27", features = ["yaml"] }
|
|||||||
env_logger = "0.4"
|
env_logger = "0.4"
|
||||||
error-chain = "0.11"
|
error-chain = "0.11"
|
||||||
log = "0.3"
|
log = "0.3"
|
||||||
|
atty = "0.2"
|
||||||
|
regex = "0.2"
|
||||||
|
time = "0.1"
|
||||||
|
ansi_term = "0.10"
|
||||||
|
lazy_static = "1.0"
|
||||||
hex-literal = "0.1"
|
hex-literal = "0.1"
|
||||||
triehash = "0.1"
|
triehash = "0.1"
|
||||||
ed25519 = { path = "../../substrate/ed25519" }
|
ed25519 = { path = "../../substrate/ed25519" }
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ pub fn start(service: &Service, handle: reactor::Handle) {
|
|||||||
(SyncState::Downloading, None) => "Syncing".into(),
|
(SyncState::Downloading, None) => "Syncing".into(),
|
||||||
(SyncState::Downloading, Some(n)) => format!("Syncing, target=#{}", n),
|
(SyncState::Downloading, Some(n)) => format!("Syncing, target=#{}", n),
|
||||||
};
|
};
|
||||||
println!("{} ({} peers), best: #{} ({})", status, sync_status.num_peers, best_block.number, hash)
|
info!(target: "polkadot", "{} ({} peers), best: #{} ({})", status, sync_status.num_peers, best_block.number, hash)
|
||||||
} else {
|
} else {
|
||||||
warn!("Error getting best block information");
|
warn!("Error getting best block information");
|
||||||
}
|
}
|
||||||
@@ -62,5 +62,3 @@ pub fn start(service: &Service, handle: reactor::Handle) {
|
|||||||
handle.spawn(display_block_import);
|
handle.spawn(display_block_import);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+39
-1
@@ -20,6 +20,10 @@
|
|||||||
|
|
||||||
extern crate app_dirs;
|
extern crate app_dirs;
|
||||||
extern crate env_logger;
|
extern crate env_logger;
|
||||||
|
extern crate atty;
|
||||||
|
extern crate ansi_term;
|
||||||
|
extern crate regex;
|
||||||
|
extern crate time;
|
||||||
extern crate futures;
|
extern crate futures;
|
||||||
extern crate tokio_core;
|
extern crate tokio_core;
|
||||||
extern crate ctrlc;
|
extern crate ctrlc;
|
||||||
@@ -37,6 +41,8 @@ extern crate polkadot_executor;
|
|||||||
extern crate polkadot_runtime;
|
extern crate polkadot_runtime;
|
||||||
extern crate polkadot_service as service;
|
extern crate polkadot_service as service;
|
||||||
|
|
||||||
|
#[macro_use]
|
||||||
|
extern crate lazy_static;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate clap;
|
extern crate clap;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
@@ -183,7 +189,7 @@ fn start_server<T, F>(mut address: SocketAddr, start: F) -> Result<T, io::Error>
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn parse_address(default: &str, port_param: &str, matches: &clap::ArgMatches) -> Result<SocketAddr, String> {
|
fn parse_address(default: &str, port_param: &str, matches: &clap::ArgMatches) -> Result<SocketAddr, String> {
|
||||||
let mut address: SocketAddr = default.parse().unwrap();
|
let mut address: SocketAddr = default.parse().ok().ok_or(format!("Invalid address specified for --{}.", port_param))?;
|
||||||
if let Some(port) = matches.value_of(port_param) {
|
if let Some(port) = matches.value_of(port_param) {
|
||||||
let port: u16 = port.parse().ok().ok_or(format!("Invalid port for --{} specified.", port_param))?;
|
let port: u16 = port.parse().ok().ok_or(format!("Invalid port for --{} specified.", port_param))?;
|
||||||
address.set_port(port);
|
address.set_port(port);
|
||||||
@@ -219,6 +225,8 @@ fn default_base_path() -> PathBuf {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn init_logger(pattern: &str) {
|
fn init_logger(pattern: &str) {
|
||||||
|
use ansi_term::Colour;
|
||||||
|
|
||||||
let mut builder = env_logger::LogBuilder::new();
|
let mut builder = env_logger::LogBuilder::new();
|
||||||
// Disable info logging by default for some modules:
|
// Disable info logging by default for some modules:
|
||||||
builder.filter(Some("ws"), log::LogLevelFilter::Warn);
|
builder.filter(Some("ws"), log::LogLevelFilter::Warn);
|
||||||
@@ -231,7 +239,37 @@ fn init_logger(pattern: &str) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
builder.parse(pattern);
|
builder.parse(pattern);
|
||||||
|
let isatty = atty::is(atty::Stream::Stderr);
|
||||||
|
let enable_color = isatty;
|
||||||
|
|
||||||
|
let format = move |record: &log::LogRecord| {
|
||||||
|
let timestamp = time::strftime("%Y-%m-%d %H:%M:%S", &time::now()).expect("Error formatting log timestamp");
|
||||||
|
|
||||||
|
let mut output = if log::max_log_level() <= log::LogLevelFilter::Info {
|
||||||
|
format!("{} {}", Colour::Black.bold().paint(timestamp), record.args())
|
||||||
|
} else {
|
||||||
|
let name = ::std::thread::current().name().map_or_else(Default::default, |x| format!("{}", Colour::Blue.bold().paint(x)));
|
||||||
|
format!("{} {} {} {} {}", Colour::Black.bold().paint(timestamp), name, record.level(), record.target(), record.args())
|
||||||
|
};
|
||||||
|
|
||||||
|
if !enable_color {
|
||||||
|
output = kill_color(output.as_ref());
|
||||||
|
}
|
||||||
|
|
||||||
|
if !isatty && record.level() <= log::LogLevel::Info && atty::is(atty::Stream::Stdout) {
|
||||||
|
// duplicate INFO/WARN output to console
|
||||||
|
println!("{}", output);
|
||||||
|
}
|
||||||
|
output
|
||||||
|
};
|
||||||
|
builder.format(format);
|
||||||
|
|
||||||
builder.init().expect("Logger initialized only once.");
|
builder.init().expect("Logger initialized only once.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn kill_color(s: &str) -> String {
|
||||||
|
lazy_static! {
|
||||||
|
static ref RE: regex::Regex = regex::Regex::new("\x1b\\[[^m]+m").expect("Error initializing color regex");
|
||||||
|
}
|
||||||
|
RE.replace_all(s, "").to_string()
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user