aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-05-11 20:46:53 +0200
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-05-11 20:46:53 +0200
commit3265381289b25459f92c47a2832d8d2d00e6f83c (patch)
tree880b23ed83d0620ace6b612c9847a63a48ccae3e
parent2b1fdc0de02748a9a4cf021c3ca3f7f18e6b4440 (diff)
log stderr too
-rw-r--r--src/main.rs23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/main.rs b/src/main.rs
index 9fdd06a..ab6696f 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -57,17 +57,32 @@ fn log(child: Child, service_name: String) -> anyhow::Result<()> {
let mut stdout = StandardStream::stdout(ColorChoice::Always);
let mut file = File::create(Path::new("/data").join(service_name.clone() + ".log"))?;
let mut r = BufReader::new(child.stdout.expect("no child stdout"));
+ let mut r_err = BufReader::new(child.stderr.expect("no child stderr"));
loop {
let mut buf = String::new();
r.read_line(&mut buf)?;
- let buf = format!("[{}] {}", service_name, buf);
+ if !buf.is_empty() {
+ let buf = format!("[{}] {}", service_name, buf);
- stdout.set_color(ColorSpec::new().set_fg(Some(Color::White)))?;
- write!(&mut stdout, "{}", buf)?;
+ stdout.set_color(ColorSpec::new().set_fg(Some(Color::White)))?;
+ write!(&mut stdout, "{}", buf)?;
- file.write_all(buf.as_bytes())?;
+ file.write_all(buf.as_bytes())?;
+ }
+
+ let mut buf_err = String::new();
+ r_err.read_line(&mut buf_err)?;
+
+ if !buf_err.is_empty() {
+ let buf_err = format!("[{}] {}", service_name, buf_err);
+
+ stdout.set_color(ColorSpec::new().set_fg(Some(Color::White)))?;
+ write!(&mut stdout, "{}", buf_err)?;
+
+ file.write_all(buf_err.as_bytes())?;
+ }
}
}