Open
Description
Bug Report
Version
tracing = "0.1.40"
tracing-subscriber = {version = "0.3.18", features = ['env-filter', 'local-time']}
tracing-appender = "0.2.3"
Platform
macos、Android
Description
I found max_log_files not work
let file_appender = RollingFileAppender::builder()
.rotation(Rotation::MINUTELY) // rotate log files once every hour
.max_log_files(2)
.filename_prefix("box_tracing") // log file names will be prefixed with `myapp.`
.filename_suffix("log") // log file names will be suffixed with `.log`
.build(file_path) // try to build an appender that stores log files in `/var/log`
.expect("initializing rolling file appender failed");
I try to find reason, and I found remove file only write->refresh_writer->prune_old_logs.
impl io::Write for RollingFileAppender {
fn write(&mut self, buf: &[u8]) -> io::Result<usize> {
let now = self.now();
let writer = self.writer.get_mut();
if let Some(current_time) = self.state.should_rollover(now) {
let _did_cas = self.state.advance_date(now, current_time);
debug_assert!(_did_cas, "if we have &mut access to the appender, no other thread can have advanced the timestamp...");
self.state.refresh_writer(now, writer);
}
writer.write(buf)
}
fn flush(&mut self) -> io::Result<()> {
self.writer.get_mut().flush()
}
}
So can we add 'prune_old_logs' to 'Inner::new'? If write can't make file rolling, and file can't remove. I hope we can trim file when init tracing. By the way, can we set file size? I found some issue, but no code use
Metadata
Metadata
Assignees
Labels
No labels