|
|
@@ -71,6 +71,15 @@ pub fn spawn_config(path: &Path, contents: &[u8]) -> Result<()> {
|
|
|
Ok(())
|
|
|
}
|
|
|
|
|
|
+// Log levels in Rust are:
|
|
|
+//
|
|
|
+// Error (highest)
|
|
|
+// Warn |
|
|
|
+// Info |
|
|
|
+// Debug \|/
|
|
|
+// Trace (lowest)
|
|
|
+//
|
|
|
+
|
|
|
pub fn get_log_level(verbosity_level: u8) -> simplelog::LevelFilter {
|
|
|
match verbosity_level {
|
|
|
0 => simplelog::LevelFilter::Info,
|
|
|
@@ -80,15 +89,12 @@ pub fn get_log_level(verbosity_level: u8) -> simplelog::LevelFilter {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-pub fn get_log_config(verbosity_level: u8) -> simplelog::Config {
|
|
|
+pub fn get_log_config() -> simplelog::Config {
|
|
|
+ let mut cfgbuilder = ConfigBuilder::new();
|
|
|
+
|
|
|
match env::var("LOG_TARGETS") {
|
|
|
Ok(x) => {
|
|
|
let targets: Vec<String> = x.split(',').map(|x| x.to_string()).collect();
|
|
|
- let mut cfgbuilder = ConfigBuilder::new();
|
|
|
- match verbosity_level {
|
|
|
- 0 => cfgbuilder.set_target_level(simplelog::LevelFilter::Debug),
|
|
|
- _ => cfgbuilder.set_target_level(simplelog::LevelFilter::Error),
|
|
|
- };
|
|
|
|
|
|
for i in targets {
|
|
|
if i.starts_with('!') {
|
|
|
@@ -97,18 +103,18 @@ pub fn get_log_config(verbosity_level: u8) -> simplelog::Config {
|
|
|
cfgbuilder.add_filter_allow(i);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- cfgbuilder.build()
|
|
|
- }
|
|
|
- Err(_) => {
|
|
|
- let mut cfgbuilder = ConfigBuilder::new();
|
|
|
- match verbosity_level {
|
|
|
- 0 => cfgbuilder.set_target_level(simplelog::LevelFilter::Debug),
|
|
|
- _ => cfgbuilder.set_target_level(simplelog::LevelFilter::Error),
|
|
|
- };
|
|
|
- cfgbuilder.build()
|
|
|
}
|
|
|
+ Err(_) => {}
|
|
|
}
|
|
|
+ // Show the level label [ERROR] for all levels
|
|
|
+ cfgbuilder.set_max_level(simplelog::LevelFilter::Error);
|
|
|
+ // The target: "foo" label
|
|
|
+ cfgbuilder.set_target_level(simplelog::LevelFilter::Error);
|
|
|
+ // Module such as net::p2p
|
|
|
+ //cfgbuilder.set_module_level(simplelog::LevelFilter::Trace);
|
|
|
+ // Filename and line number of the current log
|
|
|
+ cfgbuilder.set_location_level(simplelog::LevelFilter::Error);
|
|
|
+ cfgbuilder.build()
|
|
|
}
|
|
|
|
|
|
/// This macro is used for a standard way of daemonizing darkfi binaries
|
|
|
@@ -174,7 +180,7 @@ macro_rules! async_daemonize {
|
|
|
let args = Args::from_args_with_toml(&std::fs::read_to_string(cfg_path)?).unwrap();
|
|
|
|
|
|
let log_level = darkfi::util::cli::get_log_level(args.verbose);
|
|
|
- let log_config = darkfi::util::cli::get_log_config(args.verbose);
|
|
|
+ let log_config = darkfi::util::cli::get_log_config();
|
|
|
|
|
|
// Setup terminal logger
|
|
|
let term_logger = simplelog::TermLogger::new(
|