feat: Implemented log rolling so the log file doesn't just grow exponentially [#60]
This commit is contained in:
+1
-1
@@ -32,7 +32,7 @@ derivative = "2.2.0"
|
||||
human-panic = "2.0.6"
|
||||
indoc = "2.0.7"
|
||||
log = "0.4.29"
|
||||
log4rs = { version = "1.4.0", features = ["file_appender"] }
|
||||
log4rs = { version = "1.4.0", features = ["rolling_file_appender", "compound_policy", "size_trigger", "fixed_window_roller"] }
|
||||
regex = "1.12.2"
|
||||
reqwest = { version = "0.13.2", features = ["json"] }
|
||||
serde_yaml = "0.9.34"
|
||||
|
||||
+18
-3
@@ -10,7 +10,10 @@ use anyhow::{Context, anyhow};
|
||||
use colored::Colorize;
|
||||
use indicatif::{ProgressBar, ProgressStyle};
|
||||
use log::{LevelFilter, error};
|
||||
use log4rs::append::file::FileAppender;
|
||||
use log4rs::append::rolling_file::policy::compound::roll::fixed_window::FixedWindowRoller;
|
||||
use log4rs::append::rolling_file::policy::compound::trigger::size::SizeTrigger;
|
||||
use log4rs::append::rolling_file::policy::compound::CompoundPolicy;
|
||||
use log4rs::append::rolling_file::RollingFileAppender;
|
||||
use log4rs::config::{Appender, Root};
|
||||
use log4rs::encode::pattern::PatternEncoder;
|
||||
use regex::Regex;
|
||||
@@ -47,11 +50,23 @@ pub fn get_log_path() -> PathBuf {
|
||||
}
|
||||
|
||||
pub fn init_logging_config() -> log4rs::Config {
|
||||
let logfile = FileAppender::builder()
|
||||
let log_path = get_log_path();
|
||||
let archive_pattern = log_path
|
||||
.with_file_name("managarr.{}.log")
|
||||
.to_string_lossy()
|
||||
.into_owned();
|
||||
|
||||
let trigger = SizeTrigger::new(10 * 1024 * 1024);
|
||||
let roller = FixedWindowRoller::builder()
|
||||
.build(&archive_pattern, 3)
|
||||
.unwrap();
|
||||
let policy = CompoundPolicy::new(Box::new(trigger), Box::new(roller));
|
||||
|
||||
let logfile = RollingFileAppender::builder()
|
||||
.encoder(Box::new(PatternEncoder::new(
|
||||
"{d(%Y-%m-%d %H:%M:%S%.3f)(utc)} <{i}> [{l}] {f}:{L} - {m}{n}",
|
||||
)))
|
||||
.build(get_log_path())
|
||||
.build(log_path, Box::new(policy))
|
||||
.unwrap();
|
||||
|
||||
log4rs::Config::builder()
|
||||
|
||||
Reference in New Issue
Block a user