Skip to content

Commit 16f1060

Browse files
committed
refactor: update rotation policy for logger
1 parent b0a04ef commit 16f1060

File tree

3 files changed

+23
-47
lines changed

3 files changed

+23
-47
lines changed

oma-pm/src/dpkg.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::{fmt::Display, fs, io, path::Path, str::FromStr};
22

33
use deb822_lossless::{Deb822, Paragraph};
4-
use tracing::{debug, info};
4+
use spdlog::{debug, info};
55

66
use crate::apt::{OmaAptError, OmaAptResult};
77

src/config.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,6 @@ impl Config {
206206
.unwrap_or_else(GeneralConfig::default_bell)
207207
}
208208

209-
#[allow(dead_code)]
210209
pub fn save_log_count(&self) -> usize {
211210
self.general
212211
.as_ref()

src/main.rs

Lines changed: 22 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
use std::env::{self, args};
22
use std::ffi::CString;
3-
use std::fs::create_dir_all;
43
use std::io::{self, IsTerminal, stderr, stdin};
54
use std::path::{Path, PathBuf};
65

76
use std::process::{Command, exit};
87

98
use std::sync::Arc;
109
use std::sync::{LazyLock, OnceLock};
11-
use std::time::{Duration, SystemTime, UNIX_EPOCH};
10+
use std::time::Duration;
1211

1312
mod args;
1413
mod config;
@@ -285,20 +284,21 @@ fn init_localizer() {
285284

286285
fn init_logger(
287286
oma: &OhManagerAilurus,
288-
_config: &Config,
287+
config: &Config,
289288
) -> (Option<Arc<Logger>>, anyhow::Result<String>) {
290289
let debug = oma.global.debug;
291290
let dry_run = oma.global.dry_run;
292291

293-
let log_dir = if is_root() {
292+
let log_file = (if is_root() {
294293
PathBuf::from("/var/log/oma")
295294
} else {
296295
dirs::state_dir()
297296
.expect("Failed to get state dir")
298297
.join("oma")
299-
};
300-
301-
let log_file = create_log_file(&log_dir);
298+
})
299+
.join("oma.log")
300+
.to_string_lossy()
301+
.to_string();
302302

303303
let (level_filter, formatter) = if !debug && !dry_run {
304304
let level_filter = LevelFilter::MoreSevereEqual(Level::Info);
@@ -317,24 +317,20 @@ fn init_logger(
317317
(level_filter, formatter)
318318
};
319319

320-
let rotating_sink = if let Ok(log_file) = &log_file {
321-
Some(
322-
AsyncPoolSink::builder()
323-
.sink(Arc::new(
324-
RotatingFileSink::builder()
325-
.base_path(&log_file)
326-
.formatter(formatter.clone())
327-
.rotation_policy(RotationPolicy::Hourly)
328-
.build()
329-
.unwrap(),
330-
))
331-
.overflow_policy(spdlog::sink::OverflowPolicy::DropIncoming)
320+
let rotating_sink = AsyncPoolSink::builder()
321+
.sink(Arc::new(
322+
RotatingFileSink::builder()
323+
.base_path(&log_file)
324+
.formatter(formatter.clone())
325+
// 10 MB
326+
.rotation_policy(RotationPolicy::FileSize(10 * 1024 * 1024))
327+
.max_files(config.save_log_count())
332328
.build()
333329
.unwrap(),
334-
)
335-
} else {
336-
None
337-
};
330+
))
331+
.overflow_policy(spdlog::sink::OverflowPolicy::DropIncoming)
332+
.build()
333+
.unwrap();
338334

339335
let stream_sink = StdStreamSink::builder()
340336
.formatter(formatter)
@@ -346,33 +342,14 @@ fn init_logger(
346342

347343
logger_builder
348344
.level_filter(level_filter)
349-
.sink(Arc::new(stream_sink));
350-
351-
if let Some(rotating_sink) = rotating_sink {
352-
logger_builder.sink(Arc::new(rotating_sink));
353-
}
345+
.sink(Arc::new(stream_sink))
346+
.sink(Arc::new(rotating_sink));
354347

355348
let logger = logger_builder.build().unwrap();
356349

357350
set_default_logger(Arc::new(logger));
358351

359-
(Some(default_logger()), log_file)
360-
}
361-
362-
fn create_log_file(log_dir: &Path) -> anyhow::Result<String> {
363-
create_dir_all(log_dir)?;
364-
365-
let log_file = format!(
366-
"oma.log.{}",
367-
SystemTime::now()
368-
.duration_since(UNIX_EPOCH)
369-
.unwrap()
370-
.as_secs()
371-
);
372-
373-
let log_file = log_dir.join(log_file).to_string_lossy().to_string();
374-
375-
Ok(log_file)
352+
(Some(default_logger()), Ok(log_file))
376353
}
377354

378355
#[inline]

0 commit comments

Comments
 (0)