40 lines
1.2 KiB
Rust
40 lines
1.2 KiB
Rust
use std::path::PathBuf;
|
|
use log4rs::{
|
|
append::{
|
|
console::ConsoleAppender,
|
|
file::FileAppender,
|
|
},
|
|
config::{Appender, Config, Root},
|
|
encode::pattern::PatternEncoder,
|
|
};
|
|
use log::info;
|
|
|
|
pub fn setup_logging(log_path: &PathBuf) -> anyhow::Result<()> {
|
|
let logfile = FileAppender::builder()
|
|
.encoder(Box::new(PatternEncoder::new("{d} {l} - {m}\n")))
|
|
.build(log_path)?;
|
|
|
|
let stdout = ConsoleAppender::builder()
|
|
.encoder(Box::new(PatternEncoder::new("{h({l})} {m}\n")))
|
|
.build();
|
|
|
|
let config = Config::builder()
|
|
.appender(Appender::builder().build("stdout", Box::new(stdout)))
|
|
.appender(Appender::builder().build("logfile", Box::new(logfile)))
|
|
.build(
|
|
Root::builder()
|
|
.appender("stdout")
|
|
.appender("logfile")
|
|
.build(log::LevelFilter::Info),
|
|
)?;
|
|
|
|
log4rs::init_config(config)?;
|
|
|
|
// Это сообщение теперь будет выведено сразу после названия сервера
|
|
|
|
println! ("\n");
|
|
info!("Logging initialized. Log file: {}", log_path.display());
|
|
|
|
Ok(())
|
|
}
|