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"
|
human-panic = "2.0.6"
|
||||||
indoc = "2.0.7"
|
indoc = "2.0.7"
|
||||||
log = "0.4.29"
|
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"
|
regex = "1.12.2"
|
||||||
reqwest = { version = "0.13.2", features = ["json"] }
|
reqwest = { version = "0.13.2", features = ["json"] }
|
||||||
serde_yaml = "0.9.34"
|
serde_yaml = "0.9.34"
|
||||||
|
|||||||
+18
-3
@@ -10,7 +10,10 @@ use anyhow::{Context, anyhow};
|
|||||||
use colored::Colorize;
|
use colored::Colorize;
|
||||||
use indicatif::{ProgressBar, ProgressStyle};
|
use indicatif::{ProgressBar, ProgressStyle};
|
||||||
use log::{LevelFilter, error};
|
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::config::{Appender, Root};
|
||||||
use log4rs::encode::pattern::PatternEncoder;
|
use log4rs::encode::pattern::PatternEncoder;
|
||||||
use regex::Regex;
|
use regex::Regex;
|
||||||
@@ -47,11 +50,23 @@ pub fn get_log_path() -> PathBuf {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn init_logging_config() -> log4rs::Config {
|
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(
|
.encoder(Box::new(PatternEncoder::new(
|
||||||
"{d(%Y-%m-%d %H:%M:%S%.3f)(utc)} <{i}> [{l}] {f}:{L} - {m}{n}",
|
"{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();
|
.unwrap();
|
||||||
|
|
||||||
log4rs::Config::builder()
|
log4rs::Config::builder()
|
||||||
|
|||||||
Reference in New Issue
Block a user