Releases: rust-cli/env_logger
0.5.13
Key Changes
- Add a public function for getting the default level style
Contributions
- @felixrabe Typo
- @upsuper Move default level style to a public function
- @Eh2406 update some debs for minimal-versions
More Details
Formatter::default_level_style
The style used in the default format for printing level names can be fetched using the new default_level_style
method on a Formatter
. The below example will format just the record message using the style of its level:
builder.format(|buf, record| {
let level_style = buf.default_level_style(level);
write!(buf, "{} ", level_style.value(record.args()))
});
0.5.12
Key Changes
- Add support for high-precision timestamps
Contributions
More Details
Builder::default_format_timestamp_nanos
The Builder::default_format_timestamp_nanos
method can be used to toggle the precision of timestamps in the default format. When set to true
, timestamps will include a 6-digit nanosecond component like 2018-02-14T00:28:07.000000000Z
.
Formatter::precise_timestamp
Custom formats can get a precise timestamp instead of the default by calling the precise_timestamp
method instead of the existing timestamp
one.
0.5.11
Key Changes
- Update
termcolor
to1.0
- Bump minimum
rustc
to1.20.0
Changes to minimum Rust
The minimum version of Rust required has been set at 1.20.0
. We may change this in patch versions, but will always flag it in the release notes here.
You can always check the .travis.yml
file to see the current minimum supported version.
Contributions
0.5.10
0.5.9
Key Changes
- Add some convenient methods for adding filter directives
Contributions
More Details
filter_module
and filter_level
Adds two new methods to Builder
and filter::Builder
that are specific cases of the existing filter
method:
filter_module
adds a directive for the given module. It's the same asfilter(Some(module), level)
filter_level
adds a directive for all modules. It's the same asfilter(None, level)
0.5.8
Key Changes
- Support setting default values for environment variables before initialising a logger
Contributions
More Details
Env::filter_or
and Env::write_style_or
Default values for environment variables can be specified on the Env
type using the filter_or
and write_style_or
methods. The default value is a string in the same format as the environment variable:
impl Env {
fn filter_or<E, V>(self, filter_env: E, default: V) -> Self
where
E: Into<Cow<'a, str>>,
V: Into<Cow<'a, str>>;
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>>;
}
In usage:
let env = Env::default()
.filter_or("MY_LOG_LEVEL", "trace")
.write_style_or("MY_LOG_STYLE", "always");
env_logger::init_from_env(env);
DEFAULT_FILTER_ENV
and DEFAULT_WRITE_STYLE_ENV
Two new constants are publicly exported that correspond to the default environment variable names used for the filters and style preferences.
0.5.7
0.5.6
Key Changes
- Wrap the
termcolor::Color
API so it's no longer a public dependency
Contributions
More Details
This patch fixes an issue that slipped through 0.5.0
where the termcolor::Color
type was re-exported instead of redefined.
This is a potentially breaking change
Instead of re-exporting termcolor::Color
, we now redefine the same API in env_logger
. The potential breakage is if anyone was relying on the fact that env_logger::Color
and termcolor::Color
were equivalent types. This was only obvious from the source, and a survey of public code using env_logger
and call for comment hasn't revealed any code relying on this.
0.5.5
Key Changes
- Allow toggling parts of the default format without having to write one from scratch
Contributions
More Details
Builder::default_format_*
The default format can be easily tweaked by conditionally enabling/disabling parts of it in the main Builder
. The API looks like:
impl Builder {
fn default_format(&mut self) -> &mut Self;
fn default_format_timestamp(&mut self, write: bool) -> &mut Self;
fn default_format_module_path(&mut self, write: bool) -> &mut Self;
fn default_format_level(&mut self, write: bool) -> &mut Self;
}
Calling default_format_*
will store whether or not we want to include those parts of the log, without affecting a custom format. That means:
Builder::new()
.format(|buf, record| { ... })
.default_format_timestamp(false)
.init();
Is the same as:
Builder::new()
.format(|buf, record| { ... })
.init();
Setting a custom format won't clobber any values passed to default_format_*
methods. That means:
Builder::new()
.default_format_timestamp(false)
.format(|buf, record| { ... })
.default_format()
.init();
Is the same as:
Builder::new()
.default_format_timestamp(false)
.init();
Builder::from_default_env
A new from_default_env
method that's a convenient way of calling from_env(env_logger::Env::default())
.
0.5.4
Key Changes
- Better panic message when attempting to initialise the global logger multiple times
- Use
humantime
instead ofchrono
for formatting timestamps
Changes to minimum Rust
The minimum version of Rust required has been set at 1.18.0
. We may change this in patch versions, but will always flag it in the release notes here.
You can always check the .travis.yml
file to see the current minimum supported version.
New Dependencies
humantime
for formatting timestamps. This replaces the dependency onchrono