Skip to content

Commit b7aea37

Browse files
committed
chore: prune when startup
1 parent f76a4f4 commit b7aea37

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

tracing-appender/src/rolling.rs

+7-2
Original file line numberDiff line numberDiff line change
@@ -560,6 +560,7 @@ impl Inner {
560560
max_files,
561561
};
562562
let filename = inner.join_date(&now);
563+
inner.prune_old_logs(&filename);
563564
let writer = RwLock::new(create_writer(inner.log_directory.as_ref(), &filename)?);
564565
Ok((inner, writer))
565566
}
@@ -584,7 +585,7 @@ impl Inner {
584585
}
585586
}
586587

587-
fn prune_old_logs(&self) {
588+
fn prune_old_logs(&self, new_filename: &str) {
588589
let log_prefix = self
589590
.log_filename_prefix
590591
.as_ref()
@@ -608,6 +609,10 @@ impl Inner {
608609
let filename = entry.file_name();
609610
// if the filename is not a UTF-8 string, skip it.
610611
let filename = filename.to_str()?;
612+
// exclude current log file
613+
if filename == new_filename {
614+
return None;
615+
}
611616
// strip compressed file extension
612617
let (need_compress, mut filename) = compress_ext
613618
.and_then(|compress_ext| {
@@ -709,9 +714,9 @@ impl Inner {
709714
if let Err(err) = file.flush() {
710715
eprintln!("Couldn't flush previous writer: {}", err);
711716
}
712-
self.prune_old_logs();
713717

714718
let filename = self.join_date(&now);
719+
self.prune_old_logs(&filename);
715720
match create_writer(&self.log_directory, &filename) {
716721
Ok(new_file) => *file = new_file,
717722
Err(err) => eprintln!("Couldn't create writer for logs: {}", err),

0 commit comments

Comments
 (0)