pub struct UtcTime<F> { /* private fields */ }
Available on crate features fmt and std and time only.
Expand description

Formats the current UTC time using a formatter from the time crate.

To format the current local time instead, use the LocalTime type.

Implementations§

source§

impl UtcTime<Rfc3339>

source

pub fn rfc_3339() -> Self

Returns a formatter that formats the current [UTC time] in the RFC 3339 format, which is a subset of the ISO 8601 timestamp format.

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

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

impl<F: Formattable> UtcTime<F>

source

pub fn new(format: F) -> Self

Returns a formatter that formats the current UTC time using the time crate, with the provided provided format. The format may be any type that implements the Formattable trait.

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, failing 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::UtcTime};
use time::macros::format_description;

let timer = UtcTime::new(format_description!("[hour]:[minute]:[second]"));
let subscriber = tracing_subscriber::fmt()
    .with_timer(timer);

Using the format_description! macro requires enabling the time crate’s “macros” feature flag.

Using time::format_description::parse:

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

let time_format = time::format_description::parse("[hour]:[minute]:[second]")
    .expect("format string should be valid!");
let timer = UtcTime::new(time_format);
let subscriber = tracing_subscriber::fmt()
    .with_timer(timer);

Using a well-known format (this is equivalent to UtcTime::rfc_3339):

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

let timer = UtcTime::new(time::format_description::well_known::Rfc3339);
let subscriber = tracing_subscriber::fmt()
    .with_timer(timer);

Trait Implementations§

source§

impl<F: Clone> Clone for UtcTime<F>

source§

fn clone(&self) -> UtcTime<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 UtcTime<F>

source§

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

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

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

source§

fn default() -> Self

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

impl<F> FormatTime for UtcTime<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 UtcTime<F>
where F: RefUnwindSafe,

§

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

§

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

§

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

§

impl<F> UnwindSafe for UtcTime<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