pub struct Logger { /* private fields */ }
Expand description
The base logger builder/initializer.
§Examples
The following example shows basic initialization of this logger.
use bp3d_logger::Logger;
use log::info;
use log::LevelFilter;
fn main() {
let _guard = Logger::new().add_stdout().add_file("my-app").start();
log::set_max_level(LevelFilter::Info);
//...
info!("Example message");
}
The following example shows initialization of this logger with a return value.
use bp3d_logger::Logger;
use bp3d_logger::with_logger;
use log::info;
use log::LevelFilter;
fn main() {
let code = with_logger(Logger::new().add_stdout().add_file("my-app"), || {
log::set_max_level(LevelFilter::Info);
//...
info!("Example message");
0
});
std::process::exit(code);
}
The following example shows initialization of this logger and use of the log buffer.
use bp3d_logger::Logger;
use log::info;
use log::LevelFilter;
fn main() {
let _guard = Logger::new().add_stdout().add_file("my-app").start();
log::set_max_level(LevelFilter::Info);
bp3d_logger::enable_log_buffer(); // Enable log redirect pump into application channel.
//... application code with log redirect pump.
info!("Example message");
let l = bp3d_logger::get_log_buffer().recv().unwrap();// Capture the last log message.
println!("Last log message: {}", l.msg);
bp3d_logger::disable_log_buffer();
//... application code without log redirect pump.
}
Implementations§
Source§impl Logger
impl Logger
Sourcepub fn colors(self, state: Colors) -> Self
pub fn colors(self, state: Colors) -> Self
Sets the colors state when logging to stdout/stderr.
The default behavior is to disable colors.
Sourcepub fn smart_stderr(self, flag: bool) -> Self
pub fn smart_stderr(self, flag: bool) -> Self
Enables or disables automatic redirection of error logs to stderr.
The default for this flag is true.
Sourcepub fn add_stdout(self) -> Self
pub fn add_stdout(self) -> Self
Enables stdout logging.
Sourcepub fn add_file<T: GetLogs>(self, app: T) -> Self
pub fn add_file<T: GetLogs>(self, app: T) -> Self
Enables file logging to the given application.
The application is given as a reference to GetLogs to allow obtaining a log directory from various sources.
If the log directory could not be found the function prints an error to stderr.
Sourcepub fn start(self) -> Guard
pub fn start(self) -> Guard
Initializes the log implementation with this current configuration.
NOTE: This returns a guard to flush all log buffers before returning. It is necessary to flush log buffers because this implementation uses threads to avoid blocking the main thread when issuing logs.
NOTE 2: There are no safety concerns with running twice this function in the same application, only that calling this function may be slow due to thread management.