Skip to content

Commit 95052c9

Browse files
committed
refactor: update rotation policy for logger
1 parent f11f533 commit 95052c9

File tree

4 files changed

+24
-48
lines changed

4 files changed

+24
-48
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;
@@ -271,20 +270,21 @@ fn init_localizer() {
271270

272271
fn init_logger(
273272
oma: &OhManagerAilurus,
274-
_config: &Config,
273+
config: &Config,
275274
) -> (Option<Arc<Logger>>, anyhow::Result<String>) {
276275
let debug = oma.global.debug;
277276
let dry_run = oma.global.dry_run;
278277

279-
let log_dir = if is_root() {
278+
let log_file = (if is_root() {
280279
PathBuf::from("/var/log/oma")
281280
} else {
282281
dirs::state_dir()
283282
.expect("Failed to get state dir")
284283
.join("oma")
285-
};
286-
287-
let log_file = create_log_file(&log_dir);
284+
})
285+
.join("oma.log")
286+
.to_string_lossy()
287+
.to_string();
288288

289289
let (level_filter, formatter) = if !debug && !dry_run {
290290
let level_filter = LevelFilter::MoreSevereEqual(Level::Info);
@@ -303,24 +303,20 @@ fn init_logger(
303303
(level_filter, formatter)
304304
};
305305

306-
let rotating_sink = if let Ok(log_file) = &log_file {
307-
Some(
308-
AsyncPoolSink::builder()
309-
.sink(Arc::new(
310-
RotatingFileSink::builder()
311-
.base_path(&log_file)
312-
.formatter(formatter.clone())
313-
.rotation_policy(RotationPolicy::Hourly)
314-
.build()
315-
.unwrap(),
316-
))
317-
.overflow_policy(spdlog::sink::OverflowPolicy::DropIncoming)
306+
let rotating_sink = AsyncPoolSink::builder()
307+
.sink(Arc::new(
308+
RotatingFileSink::builder()
309+
.base_path(&log_file)
310+
.formatter(formatter.clone())
311+
// 10 MB
312+
.rotation_policy(RotationPolicy::FileSize(10 * 1024 * 1024))
313+
.max_files(config.save_log_count())
318314
.build()
319315
.unwrap(),
320-
)
321-
} else {
322-
None
323-
};
316+
))
317+
.overflow_policy(spdlog::sink::OverflowPolicy::DropIncoming)
318+
.build()
319+
.unwrap();
324320

325321
let stream_sink = StdStreamSink::builder()
326322
.formatter(formatter)
@@ -332,33 +328,14 @@ fn init_logger(
332328

333329
logger_builder
334330
.level_filter(level_filter)
335-
.sink(Arc::new(stream_sink));
336-
337-
if let Some(rotating_sink) = rotating_sink {
338-
logger_builder.sink(Arc::new(rotating_sink));
339-
}
331+
.sink(Arc::new(stream_sink))
332+
.sink(Arc::new(rotating_sink));
340333

341334
let logger = logger_builder.build().unwrap();
342335

343336
set_default_logger(Arc::new(logger));
344337

345-
(Some(default_logger()), log_file)
346-
}
347-
348-
fn create_log_file(log_dir: &Path) -> anyhow::Result<String> {
349-
create_dir_all(log_dir)?;
350-
351-
let log_file = format!(
352-
"oma.log.{}",
353-
SystemTime::now()
354-
.duration_since(UNIX_EPOCH)
355-
.unwrap()
356-
.as_secs()
357-
);
358-
359-
let log_file = log_dir.join(log_file).to_string_lossy().to_string();
360-
361-
Ok(log_file)
338+
(Some(default_logger()), Ok(log_file))
362339
}
363340

364341
#[inline]

src/subcommand/tree.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use oma_pm::{
1515
oma_apt::{Package, Version},
1616
pkginfo::OmaDepType,
1717
};
18-
use tracing::debug;
18+
use spdlog::debug;
1919

2020
use crate::{
2121
CliExecuter, config::Config, error::OutputError, fl, table::oma_display_with_normal_output,

0 commit comments

Comments
 (0)