use log4rs::{
append::console::{ConsoleAppender, Target},
encode::pattern::PatternEncoder,
};
pub fn create_console_appender() -> ConsoleAppender {
ConsoleAppender::builder()
.target(Target::Stdout)
.encoder(Box::new(PatternEncoder::new(
"[{d(%Y-%m-%d %H:%M:%S%.3f)} {h({l})} {M}] {m}{n}",
)))
.build()
}
pub fn create_custom_console_appender(target: Target, pattern: &str) -> ConsoleAppender {
ConsoleAppender::builder()
.target(target)
.encoder(Box::new(PatternEncoder::new(pattern)))
.build()
}
pub fn create_colored_console_appender() -> ConsoleAppender {
let pattern = r#"{d(%Y-%m-%d %H:%M:%S%.3f)} {highlight({l})} \
{magenta}[{T}]{end} {cyan}{M}{end} - {message}{n}"#;
ConsoleAppender::builder()
.target(Target::Stdout)
.encoder(Box::new(PatternEncoder::new(pattern)))
.build()
}
pub fn create_minimal_console_appender() -> ConsoleAppender {
ConsoleAppender::builder()
.target(Target::Stdout)
.encoder(Box::new(PatternEncoder::new("{l} {m}{n}")))
.build()
}
pub fn create_json_console_appender() -> ConsoleAppender {
let pattern = r#"{"timestamp":"{d(%Y-%m-%dT%H:%M:%S%.3fZ)}","level":"{l}","target":"{T}","message":"{m}"}"#;
ConsoleAppender::builder()
.target(Target::Stdout)
.encoder(Box::new(PatternEncoder::new(pattern)))
.build()
}