[][src]Struct simplelog::TermLogger

pub struct TermLogger { /* fields omitted */ }

The TermLogger struct. Provides a stderr/out based Logger implementation

Supports colored output

Methods

impl TermLogger[src]

pub fn init(
    log_level: LevelFilter,
    config: Config,
    mode: TerminalMode
) -> Result<(), TermLogError>
[src]

init function. Globally initializes the TermLogger as the one and only used log facility.

Takes the desired Level and Config as arguments. They cannot be changed later on. Fails if another Logger was already initialized or if a terminal couldn't be opened.

Workaround the latter by either

  • panic'ing (not recommended). e.g. TermLogger::init(LevelFilter::Warn, Config::default(), TerminalMode::Mixed).unwrap()
  • silently ignoring (little better). e.g. let _ = TermLogger::init(LevelFilter::Warn, Config::default(), TerminalMode::Mixed);
  • falling back:
if let Err(_) = TermLogger::init(LevelFilter::Warn, Config::default(), TerminalMode::Mixed) {
    SimpleLogger::init(LevelFilter::Warn, Config::default()).expect("No logger should be already set")
}

Examples

TermLogger::init(LevelFilter::Info, Config::default(), TerminalMode::Mixed).expect("No interactive terminal");

pub fn new(
    log_level: LevelFilter,
    config: Config,
    mode: TerminalMode
) -> Option<Box<TermLogger>>
[src]

allows to create a new logger, that can be independently used, no matter whats globally set.

no macros are provided for this case and you probably dont want to use this function, but init(), if you dont want to build a CombinedLogger.

Takes the desired Level and Config as arguments. They cannot be changed later on.

Returns a Boxed TermLogger, or None if a terminal couldn't be opened. Workaround this by either

  • panic'ing (not recommended). e.g. TermLogger::new(LevelFilter::Warn, Config::default(), TerminalMode::Mixed).unwrap()
  • silently ignoring (little better). e.g. if let Some(logger) = TermLogger::new(LevelFilter::Warn, Config::default(), TerminalMode::Mixed) { /*...*/ }
  • falling back:
let mut multiple = vec![];
match TermLogger::new(LevelFilter::Warn, Config::default(), TerminalMode::Mixed) {
    Some(logger) => multiple.push(logger as Box<dyn SharedLogger>),
    None => multiple.push(SimpleLogger::new(LevelFilter::Warn, Config::default())),
}
// Add more ...

Examples

let term_logger = TermLogger::new(LevelFilter::Info, Config::default(), TerminalMode::Mixed).expect("No interactive terminal");

Trait Implementations

impl Log for TermLogger[src]

impl SharedLogger for TermLogger[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.