diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-08-16 16:35:02 +0200 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-08-16 16:37:22 +0200 |
commit | 13fab8cd59f42c9ff66ff0bdfdb8433781b32659 (patch) | |
tree | 92b433de21d7209770772ca4637464bb6fa3112f | |
parent | adae733aeea5de31c8ed2ecc4650f6dba727a557 (diff) |
limit logs to 30 MB
-rw-r--r-- | src/main.rs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs index 64bc3b2..b5286d0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,5 @@ use std::fs::{self, DirEntry, File}; -use std::io::{BufRead, BufReader, Write}; +use std::io::{BufRead, BufReader, Seek, Write}; use std::path::Path; use std::process::{self, ChildStderr, ChildStdout, Command, ExitCode, Stdio}; use std::thread; @@ -130,6 +130,11 @@ fn log_out(pipe: ChildStdout, service_name: String) -> anyhow::Result<()> { let mut buf = String::new(); r.read_line(&mut buf)?; + if file.metadata()?.len() > 30000000 { + file.set_len(0)?; + file.rewind()?; + } + if !buf.is_empty() { let timestamp = humantime::format_rfc3339_seconds(SystemTime::now()); let buf = format!("[{} {}] {}", timestamp, service_name, buf); @@ -151,6 +156,11 @@ fn log_err(pipe: ChildStderr, service_name: String) -> anyhow::Result<()> { let mut buf = String::new(); r.read_line(&mut buf)?; + if file.metadata()?.len() > 30000000 { + file.set_len(0)?; + file.rewind()?; + } + if !buf.is_empty() { let timestamp = humantime::format_rfc3339_seconds(SystemTime::now()); let buf = format!("[{} {}] {}", timestamp, service_name, buf); |