aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-08-16 16:35:02 +0200
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-08-16 16:37:22 +0200
commit13fab8cd59f42c9ff66ff0bdfdb8433781b32659 (patch)
tree92b433de21d7209770772ca4637464bb6fa3112f
parentadae733aeea5de31c8ed2ecc4650f6dba727a557 (diff)
limit logs to 30 MB
-rw-r--r--src/main.rs12
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);