Struct env_logger::fmt::Formatter
source · pub struct Formatter { /* private fields */ }
Expand description
A formatter to write logs into.
Formatter
implements the standard Write
trait for writing log records.
It also supports terminal colors, through the style
method.
Examples
Use the writeln
macro to format a log record.
An instance of a Formatter
is passed to an env_logger
format as buf
:
use std::io::Write;
let mut builder = env_logger::Builder::new();
builder.format(|buf, record| writeln!(buf, "{}: {}", record.level(), record.args()));
Implementations§
source§impl Formatter
impl Formatter
sourcepub fn timestamp(&self) -> Timestamp
Available on crate feature humantime
only.
pub fn timestamp(&self) -> Timestamp
humantime
only.Get a Timestamp
for the current date and time in UTC.
Examples
Include the current timestamp with the log record:
use std::io::Write;
let mut builder = env_logger::Builder::new();
builder.format(|buf, record| {
let ts = buf.timestamp();
writeln!(buf, "{}: {}: {}", ts, record.level(), record.args())
});
Examples found in repository?
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
fn init_logger() {
let env = Env::default()
.filter("MY_LOG_LEVEL")
.write_style("MY_LOG_STYLE");
Builder::from_env(env)
.format(|buf, record| {
let mut style = buf.style();
style.set_bg(Color::Yellow).set_bold(true);
let timestamp = buf.timestamp();
writeln!(
buf,
"My formatted log ({}): {}",
timestamp,
style.value(record.args())
)
})
.init();
}
sourcepub fn timestamp_seconds(&self) -> Timestamp
Available on crate feature humantime
only.
pub fn timestamp_seconds(&self) -> Timestamp
humantime
only.Get a Timestamp
for the current date and time in UTC with full
second precision.
sourcepub fn timestamp_millis(&self) -> Timestamp
Available on crate feature humantime
only.
pub fn timestamp_millis(&self) -> Timestamp
humantime
only.Get a Timestamp
for the current date and time in UTC with
millisecond precision.
sourcepub fn timestamp_micros(&self) -> Timestamp
Available on crate feature humantime
only.
pub fn timestamp_micros(&self) -> Timestamp
humantime
only.Get a Timestamp
for the current date and time in UTC with
microsecond precision.
sourcepub fn timestamp_nanos(&self) -> Timestamp
Available on crate feature humantime
only.
pub fn timestamp_nanos(&self) -> Timestamp
humantime
only.Get a Timestamp
for the current date and time in UTC with
nanosecond precision.
source§impl Formatter
impl Formatter
sourcepub fn style(&self) -> Style
Available on crate feature color
only.
pub fn style(&self) -> Style
color
only.Begin a new Style
.
Examples
Create a bold, red colored style and use it to print the log level:
use std::io::Write;
use env_logger::fmt::Color;
let mut builder = env_logger::Builder::new();
builder.format(|buf, record| {
let mut level_style = buf.style();
level_style.set_color(Color::Red).set_bold(true);
writeln!(buf, "{}: {}",
level_style.value(record.level()),
record.args())
});
Examples found in repository?
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
fn init_logger() {
let env = Env::default()
.filter("MY_LOG_LEVEL")
.write_style("MY_LOG_STYLE");
Builder::from_env(env)
.format(|buf, record| {
let mut style = buf.style();
style.set_bg(Color::Yellow).set_bold(true);
let timestamp = buf.timestamp();
writeln!(
buf,
"My formatted log ({}): {}",
timestamp,
style.value(record.args())
)
})
.init();
}
sourcepub fn default_level_style(&self, level: Level) -> Style
Available on crate feature color
only.
pub fn default_level_style(&self, level: Level) -> Style
color
only.Get the default Style
for the given level.
The style can be used to print other values besides the level.
sourcepub fn default_styled_level(&self, level: Level) -> StyledValue<'static, Level>
Available on crate feature color
only.
pub fn default_styled_level(&self, level: Level) -> StyledValue<'static, Level>
color
only.Get a printable Style
for the given level.
The style can only be used to print the level.
Trait Implementations§
source§impl Write for Formatter
impl Write for Formatter
source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
can_vector
)1.0.0 · source§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
write_all_vectored
)