Improve network usage for small text changes #166
1 changed files with 22 additions and 1 deletions
Fix flaky test
commit
4f582c3279
|
|
@ -93,6 +93,25 @@ impl RotatingFileWriter {
|
||||||
SystemTime::now() >= inner.next_rotation_time
|
SystemTime::now() >= inner.next_rotation_time
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn open_or_create_log_file(inner: &mut RotatingFileWriterInner) -> io::Result<()> {
|
||||||
|
// If we haven't reached rotation time and there's an existing log file, reuse it
|
||||||
|
if !Self::should_rotate(inner)
|
||||||
|
&& let Some(latest_file) = Self::find_latest_log_file(&inner.directory, &inner.file_prefix)
|
||||||
|
{
|
||||||
|
let filepath = inner.directory.join(&latest_file);
|
||||||
|
let file = OpenOptions::new()
|
||||||
|
.create(true)
|
||||||
|
.append(true)
|
||||||
|
.open(&filepath)?;
|
||||||
|
|
||||||
|
inner.current_file = Some(file);
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise, create a new log file with current timestamp
|
||||||
|
Self::rotate(inner)
|
||||||
|
}
|
||||||
|
|
||||||
fn rotate(inner: &mut RotatingFileWriterInner) -> io::Result<()> {
|
fn rotate(inner: &mut RotatingFileWriterInner) -> io::Result<()> {
|
||||||
let timestamp = Local::now().format("%Y-%m-%d_%H-%M-%S");
|
let timestamp = Local::now().format("%Y-%m-%d_%H-%M-%S");
|
||||||
let filename = format!("{}.{}.log", inner.file_prefix, timestamp);
|
let filename = format!("{}.{}.log", inner.file_prefix, timestamp);
|
||||||
|
|
@ -114,7 +133,9 @@ impl Write for RotatingFileWriter {
|
||||||
fn write(&mut self, buf: &[u8]) -> io::Result<usize> {
|
fn write(&mut self, buf: &[u8]) -> io::Result<usize> {
|
||||||
let mut inner = self.inner.lock().unwrap();
|
let mut inner = self.inner.lock().unwrap();
|
||||||
|
|
||||||
if inner.current_file.is_none() || Self::should_rotate(&inner) {
|
if inner.current_file.is_none() {
|
||||||
|
Self::open_or_create_log_file(&mut inner)?;
|
||||||
|
} else if Self::should_rotate(&inner) {
|
||||||
Self::rotate(&mut inner)?;
|
Self::rotate(&mut inner)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue