Browse Source

Implement log_level config option

Daniel García 6 years ago
parent
commit
2475c36a75
3 changed files with 10 additions and 1 deletions
  1. 6 0
      .env.template
  2. 2 0
      src/config.rs
  3. 2 1
      src/main.rs

+ 6 - 0
.env.template

@@ -43,6 +43,12 @@
 ## It's recommended to also set 'ROCKET_CLI_COLORS=off'
 # LOG_FILE=/path/to/log
 
+## Log level
+## Change the verbosity of the log output
+## Valid values are "trace", "debug", "info", "warn", "error" and "off"
+## This requires extended logging
+# LOG_LEVEL=Info
+
 ## Enable WAL for the DB
 ## Set to false to avoid enabling WAL during startup.
 ## Note that if the DB already has WAL enabled, you will also need to disable WAL in the DB,

+ 2 - 0
src/config.rs

@@ -277,6 +277,8 @@ make_config! {
         extended_logging:       bool,   false,  def,    true;
         /// Log file path
         log_file:               String, false,  option;
+        /// Log level
+        log_level:              String, false,  def,    "Info".to_string();
 
         /// Enable DB WAL |> Turning this off might lead to worse performance, but might help if using bitwarden_rs on some exotic filesystems,
         /// that do not support WAL. Please make sure you read project wiki on the topic before changing this setting.

+ 2 - 1
src/main.rs

@@ -69,6 +69,7 @@ fn launch_info() {
 }
 
 fn init_logging() -> Result<(), fern::InitError> {
+    use std::str::FromStr;
     let mut logger = fern::Dispatch::new()
         .format(|out, message, record| {
             out.finish(format_args!(
@@ -79,7 +80,7 @@ fn init_logging() -> Result<(), fern::InitError> {
                 message
             ))
         })
-        .level(log::LevelFilter::Info)
+        .level(log::LevelFilter::from_str(&CONFIG.log_level()).expect("Valid log level"))
         // Hide unknown certificate errors if using self-signed
         .level_for("rustls::session", log::LevelFilter::Off)
         // Hide failed to close stream messages