Struct env_logger::Env

source ·
pub struct Env<'a> { /* private fields */ }
Expand description

Set of environment variables to configure from.

§Default environment variables

By default, the Env will read the following environment variables:

  • RUST_LOG: the level filter
  • RUST_LOG_STYLE: whether or not to print styles with records.

These sources can be configured using the builder methods on Env.

Implementations§

source§

impl<'a> Env<'a>

source

pub fn new() -> Self

Get a default set of environment variables.

source

pub fn filter<E>(self, filter_env: E) -> Self
where E: Into<Cow<'a, str>>,

Specify an environment variable to read the filter from.

Examples found in repository?
examples/custom_default_format.rs (line 26)
24
25
26
27
28
29
30
31
32
33
fn init_logger() {
    let env = Env::default()
        .filter("MY_LOG_LEVEL")
        .write_style("MY_LOG_STYLE");

    Builder::from_env(env)
        .format_level(false)
        .format_timestamp_nanos()
        .init();
}
More examples
Hide additional examples
examples/custom_format.rs (line 28)
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
    fn init_logger() {
        let env = Env::default()
            .filter("MY_LOG_LEVEL")
            .write_style("MY_LOG_STYLE");

        Builder::from_env(env)
            .format(|buf, record| {
                // We are reusing `anstyle` but there are `anstyle-*` crates to adapt it to your
                // preferred styling crate.
                let warn_style = buf.default_level_style(log::Level::Warn);
                let timestamp = buf.timestamp();

                writeln!(
                    buf,
                    "My formatted log ({timestamp}): {warn_style}{}{warn_style:#}",
                    record.args()
                )
            })
            .init();
    }
source

pub fn filter_or<E, V>(self, filter_env: E, default: V) -> Self
where E: Into<Cow<'a, str>>, V: Into<Cow<'a, str>>,

Specify an environment variable to read the filter from.

If the variable is not set, the default value will be used.

Examples found in repository?
examples/default.rs (line 27)
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
fn main() {
    // The `Env` lets us tweak what the environment
    // variables to read are and what the default
    // value is if they're missing
    let env = Env::default()
        .filter_or("MY_LOG_LEVEL", "trace")
        .write_style_or("MY_LOG_STYLE", "always");

    env_logger::init_from_env(env);

    trace!("some trace log");
    debug!("some debug log");
    info!("some information log");
    warn!("some warning log");
    error!("some error log");
}
source

pub fn default_filter_or<V>(self, default: V) -> Self
where V: Into<Cow<'a, str>>,

Use the default environment variable to read the filter from.

If the variable is not set, the default value will be used.

source

pub fn write_style<E>(self, write_style_env: E) -> Self
where E: Into<Cow<'a, str>>,

Specify an environment variable to read the style from.

Examples found in repository?
examples/custom_default_format.rs (line 27)
24
25
26
27
28
29
30
31
32
33
fn init_logger() {
    let env = Env::default()
        .filter("MY_LOG_LEVEL")
        .write_style("MY_LOG_STYLE");

    Builder::from_env(env)
        .format_level(false)
        .format_timestamp_nanos()
        .init();
}
More examples
Hide additional examples
examples/custom_format.rs (line 29)
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
    fn init_logger() {
        let env = Env::default()
            .filter("MY_LOG_LEVEL")
            .write_style("MY_LOG_STYLE");

        Builder::from_env(env)
            .format(|buf, record| {
                // We are reusing `anstyle` but there are `anstyle-*` crates to adapt it to your
                // preferred styling crate.
                let warn_style = buf.default_level_style(log::Level::Warn);
                let timestamp = buf.timestamp();

                writeln!(
                    buf,
                    "My formatted log ({timestamp}): {warn_style}{}{warn_style:#}",
                    record.args()
                )
            })
            .init();
    }
source

pub fn write_style_or<E, V>(self, write_style_env: E, default: V) -> Self
where E: Into<Cow<'a, str>>, V: Into<Cow<'a, str>>,

Specify an environment variable to read the style from.

If the variable is not set, the default value will be used.

Examples found in repository?
examples/default.rs (line 28)
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
fn main() {
    // The `Env` lets us tweak what the environment
    // variables to read are and what the default
    // value is if they're missing
    let env = Env::default()
        .filter_or("MY_LOG_LEVEL", "trace")
        .write_style_or("MY_LOG_STYLE", "always");

    env_logger::init_from_env(env);

    trace!("some trace log");
    debug!("some debug log");
    info!("some information log");
    warn!("some warning log");
    error!("some error log");
}
source

pub fn default_write_style_or<V>(self, default: V) -> Self
where V: Into<Cow<'a, str>>,

Use the default environment variable to read the style from.

If the variable is not set, the default value will be used.

Trait Implementations§

source§

impl<'a> Debug for Env<'a>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a> Default for Env<'a>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'a, T> From<T> for Env<'a>
where T: Into<Cow<'a, str>>,

source§

fn from(filter_env: T) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'a> Freeze for Env<'a>

§

impl<'a> RefUnwindSafe for Env<'a>

§

impl<'a> Send for Env<'a>

§

impl<'a> Sync for Env<'a>

§

impl<'a> Unpin for Env<'a>

§

impl<'a> UnwindSafe for Env<'a>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.