pub struct LocalTime<F> { /* private fields */ }
Available on crate feature fmt and crate feature std and unsound_local_offset and crate feature local-time and crate feature time only.
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: The time
    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 LocalTime<Rfc3339>

source

pub fn rfc_3339() -> Self

Returns a formatter that formats the current local time in the RFC 3339 format (a subset of the ISO 8601 timestamp format).

Examples
use tracing_subscriber::fmt::{self, time};

let subscriber = tracing_subscriber::fmt()
    .with_timer(time::LocalTime::rfc_3339());
source§

impl<F: Formattable> LocalTime<F>

source

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: The 
    time 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 subscriber = 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 subscriber = 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 subscriber = tracing_subscriber::fmt()
    .with_timer(timer);

Trait Implementations§

source§

impl<F: Clone> Clone for LocalTime<F>

source§

fn clone(&self) -> LocalTime<F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<F: Debug> Debug for LocalTime<F>

source§

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

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

impl<F> Default for LocalTime<F>
where F: Formattable + Default,

source§

fn default() -> Self

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

impl<F> FormatTime for LocalTime<F>
where F: Formattable,

source§

fn format_time(&self, w: &mut Writer<'_>) -> Result

Measure and write out the current time. Read more

Auto Trait Implementations§

§

impl<F> RefUnwindSafe for LocalTime<F>
where F: RefUnwindSafe,

§

impl<F> Send for LocalTime<F>
where F: Send,

§

impl<F> Sync for LocalTime<F>
where F: Sync,

§

impl<F> Unpin for LocalTime<F>
where F: Unpin,

§

impl<F> UnwindSafe for LocalTime<F>
where F: UnwindSafe,

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> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more