[][src]Function cursive_flexi_logger_view::cursive_flexi_logger

pub fn cursive_flexi_logger(siv: &Cursive) -> Box<CursiveLogWriter>

Creates a new LogWriter instance for the FlexiLoggerView. Use this to register a cursive log writer in flexi_logger.

Although, it is safe to create multiple cursive log writers, it may not be what you want. Each instance of a cursive log writer replicates the log messages in to FlexiLoggerView. When registering multiple cursive log writer instances, a single log messages will be duplicated by each log writer.

Registering the cursive log writer in flexi_logger

use cursive::Cursive;
use flexi_logger::{Logger, LogTarget};

fn main() {
    // we need to initialize cursive first, as the cursive-flexi-logger
    // needs a cursive callback sink to notify cursive about screen refreshs
    // when a new log message arrives
    let mut siv = Cursive::default();

    Logger::with_env_or_str("trace")
        .log_target(LogTarget::FileAndWriter(
            cursive_flexi_logger_view::cursive_flexi_logger(&siv), // register log writer
        ))
        .directory("logs")
        .suppress_timestamp()
        .format(flexi_logger::colored_with_thread)
        .start()
        .expect("failed to initialize logger!");
}