Struct tracing_subscriber::fmt::time::LocalTime
source · pub struct LocalTime<F> { /* private fields */ }
Expand description
Formats the current local time using a formatter from the time
crate.
To format the current UTC time instead, use the UtcTime
type.
Warning: Thetime
crate must be compiled with--cfg unsound_local_offset
in order to use local timestamps. When this cfg is not enabled, local timestamps cannot be recorded, and events will be logged without timestamps.Alternatively,
OffsetTime
can log with a local offset if it is initialized early.See the
time
documentation for more details.
Implementations§
source§impl<F: Formattable> LocalTime<F>
impl<F: Formattable> LocalTime<F>
sourcepub fn new(format: F) -> Self
pub fn new(format: F) -> Self
Returns a formatter that formats the current local time using the
time
crate with the provided provided format. The format may be any
type that implements the Formattable
trait.
Warning: Thetime
crate must be compiled with--cfg unsound_local_offset
in order to use local timestamps. When this cfg is not enabled, local timestamps cannot be recorded, and events will be logged without timestamps.See the
time
documentation for more details.
Typically, the format will be a format description string, or one of the
time
crate’s well-known formats.
If the format description is statically known, then the
format_description!
macro should be used. This is identical to the
time::format_description::parse
method, but runs at compile-time,
throwing an error if the format description is invalid. If the desired format
is not known statically (e.g., a user is providing a format string), then the
time::format_description::parse
method should be used. Note that this
method is fallible.
See the time
book for details on the format description syntax.
Examples
Using the format_description!
macro:
use tracing_subscriber::fmt::{self, time::LocalTime};
use time::macros::format_description;
let timer = LocalTime::new(format_description!("[hour]:[minute]:[second]"));
let collector = tracing_subscriber::fmt()
.with_timer(timer);
Using time::format_description::parse
:
use tracing_subscriber::fmt::{self, time::LocalTime};
let time_format = time::format_description::parse("[hour]:[minute]:[second]")
.expect("format string should be valid!");
let timer = LocalTime::new(time_format);
let collector = tracing_subscriber::fmt()
.with_timer(timer);
Using the format_description!
macro requires enabling the time
crate’s “macros” feature flag.
Using a well-known format (this is equivalent to
LocalTime::rfc_3339
):
use tracing_subscriber::fmt::{self, time::LocalTime};
let timer = LocalTime::new(time::format_description::well_known::Rfc3339);
let collector = tracing_subscriber::fmt()
.with_timer(timer);