Skip to main content

StdoutLogger

Struct StdoutLogger 

Source
pub struct StdoutLogger {}
Expand description

Implements a GenLogger that outputs to Stdout

§Simple Example

Instantiates a logger with default message and timestamp format

use log::info;
use log::LevelFilter;
use poly_logger::StdoutLogger;

let mut logger = StdoutLogger::new(LevelFilter::Info);
logger.init().unwrap();
info!("This is an INFO message to STOUT");

§Customized Example

Instantiates a logger with custom message and timestamp format

use log::info;
use log::LevelFilter;
use poly_logger::StdoutLogger;
 
let mut logger = StdoutLogger::new(LevelFilter::Info);
logger.timestamp_format("%X%.6f")
      .msg_format("[{timestamp} {file}:{line}] - {level} - {args}");
logger.init().unwrap();
info!("This is a formatted INFO message to STOUT");

§Note

The call to new() is actually returning an instance of GenLogger. The StdoutLogger struct is just a way to instantiate a GenLogger with Stdout as the target for output. See GenLogger for the full list of methods that can be called on the logger instance.

Implementations§

Source§

impl StdoutLogger

Source

pub fn new(level_filter: LevelFilter) -> GenLogger<Stdout>

Examples found in repository?
examples/stdout.rs (line 6)
5fn main() {
6    let mut logger = StdoutLogger::new(LevelFilter::Info);
7
8    logger.timestamp_format("%F %X%.3f %Z")
9          .msg_format("{level} [{timestamp} {file}:{line}] - {args}");
10    logger.init().unwrap();
11
12    trace!("This is an TRACE message");
13    debug!("This is a DEBUG message");
14    info!("This is an INFO message");
15    warn!("This is a WARN message");
16    error!("This is an ERROR message");
17}
More examples
Hide additional examples
examples/poly.rs (line 28)
5fn main() {
6    // Create some logger instances and run all through
7    // the PolyLogger
8    
9    // Default format 
10    let tl0 = StderrLogger::new(LevelFilter::Info);
11
12    // Custom format
13    let mut tl1 = StderrLogger::new(LevelFilter::Warn);
14    tl1.timestamp_format("%a %b %e %T %Y")
15       .msg_format("Custom: [{timestamp}] {level} [{file}:{line}] - {args}");
16
17    // Simpler format
18    let mut tl2 = StderrLogger::new(LevelFilter::Info);
19    tl2.msg_format("Simple1: {level} [{timestamp}] {args}")
20       .timestamp_format("%T");
21
22    // Even simpler
23    let mut tl3 = StderrLogger::new(LevelFilter::Debug);
24    tl3.msg_format("Simple2: {level} - {args}")
25       .timestamp_format("");
26
27    // Raw format to stdout
28    let mut tl4 = StdoutLogger::new(LevelFilter::Trace);
29    tl4.msg_format("{args}")
30       .timestamp_format("");
31
32    // File logger
33    let filename = "/tmp/file_logger.log";
34    let mut fl0 = FileLogger::new(LevelFilter::Info);
35    fl0.msg_format("Simple1: {level} [{timestamp}] {args}")
36       .timestamp_format("%T")
37       .filename(filename);
38    println!("Logging to {}", filename);
39    
40    // Create the poly logger and add our logger instances
41    let mut pl = PolyLogger::new();
42    pl.add(tl0);
43    pl.add(tl1);
44    pl.add(tl2);
45    pl.add(tl3);
46    pl.add(tl4);
47    pl.add(fl0.create());
48    pl.init().unwrap();
49
50    trace!("This is an TRACE message");
51    eprintln!("------------------------------");
52    debug!("This is a DEBUG message");
53    eprintln!("------------------------------");
54    info!("This is an INFO message");
55    eprintln!("------------------------------");
56    warn!("This is a WARN message");
57    eprintln!("------------------------------");
58    error!("This is an ERROR message");
59}

Auto Trait Implementations§

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, 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

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>,

Source§

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.