Browse Source

Replace ::from_env_or with a .env builder method

Sam Clements 3 years ago
parent
commit
de53e4d2b9
1 changed files with 19 additions and 25 deletions
  1. 19 25
      src/lib.rs

+ 19 - 25
src/lib.rs

@@ -55,40 +55,34 @@ impl SimpleLogger {
     ///
     /// [`init`]: #method.init
     #[must_use = "You must call init() to begin logging"]
+    #[deprecated(
+        since = "1.12.0",
+        note = "Use [`env`](#method.env) instead. This predates use of the builder pattern in this library."
+    )]
     pub fn from_env() -> SimpleLogger {
-        Self::from_env_or(log::LevelFilter::Error)
+        SimpleLogger::new().with_level(log::LevelFilter::Error).env()
     }
 
-    /// Simulates env_logger behavior, which enables the user to choose log level by
-    /// setting a `RUST_LOG` environment variable. The `RUST_LOG` is not set or its value is not
-    /// recognized as one of the log levels, this function will use the level in the argument.
+    /// Simulates env_logger behavior, which enables the user to choose log
+    /// level by setting a `RUST_LOG` environment variable. This will use
+    /// the default level set by [`with_level`] if `RUST_LOG` is not set or
+    /// can't be parsed as a standard log level.
     ///
-    /// You may use the various builder-style methods on this type to configure
-    /// the logger, and you must call [`init`] in order to start logging messages.
-    ///
-    /// ```no_run
-    /// use simple_logger::SimpleLogger;
-    /// use log::LevelFilter;
-    /// SimpleLogger::from_env_or(LevelFilter::Info).init().unwrap();
-    /// log::info!("This is an example message.");
-    /// ```
-    ///
-    /// [`init`]: #method.init
+    /// [`with_level`]: #method.with_level
     #[must_use = "You must call init() to begin logging"]
-    pub fn from_env_or(default_level: LevelFilter) -> SimpleLogger {
+    pub fn env(mut self) -> SimpleLogger {
         let level = match std::env::var("RUST_LOG") {
             Ok(x) => match x.to_lowercase().as_str() {
-                "trace" => log::LevelFilter::Trace,
-                "debug" => log::LevelFilter::Debug,
-                "info" => log::LevelFilter::Info,
-                "warn" => log::LevelFilter::Warn,
-                "error" => log::LevelFilter::Error,
-                _ => default_level,
+                "trace" => self.default_level = log::LevelFilter::Trace,
+                "debug" => self.default_level = log::LevelFilter::Debug,
+                "info" => self.default_level = log::LevelFilter::Info,
+                "warn" => self.default_level = log::LevelFilter::Warn,
+                "error" => self.default_level = log::LevelFilter::Error,
+                _ => (),
             },
-            _ => default_level,
+            _ => (),
         };
-
-        SimpleLogger::new().with_level(level)
+        self
     }
 
     /// Set the 'default' log level.