From b11eccec5bdc74426ce759634080e04d7d35db0f Mon Sep 17 00:00:00 2001 From: Arne Beer Date: Sat, 24 Aug 2024 14:07:57 +0200 Subject: [PATCH] change: Send all log output to stderr --- CHANGELOG.md | 2 ++ pueue/src/bin/pueue.rs | 14 ++++++++++++-- pueue/src/bin/pueued.rs | 14 ++++++++++++-- pueue/src/client/client.rs | 2 +- 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9fcb738..1c423e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,6 +43,7 @@ TLDR: The new task state representation is more verbose but significantly cleane **Important: The Pueue daemon needs to be restarted and the state will be wiped clean.** - **Breaking**: Streamlined `pueue log` parameters to behave the same way as `start`, `pause` or `kill`. [#509](https://github.com/Nukesor/pueue/issues/509) - **Breaking**: Remove the `--children` commandline flags, that have been deprecated and no longer serve any function since `v3.0.0`. +- **Breaking**: Send log output to `stderr` instead of `stdout` [#562](https://github.com/Nukesor/pueue/issues/562). ### Add @@ -59,6 +60,7 @@ TLDR: The new task state representation is more verbose but significantly cleane - Fixed delay after sending process related commands from client. [#548](https://github.com/Nukesor/pueue/pull/548) - Callback templating arguments were html escaped by accident. [#564](https://github.com/Nukesor/pueue/pull/564) +- Print incompatible version warning info as a log message instead of plain stdout input, which broke json outputs [#562](https://github.com/Nukesor/pueue/issues/562). ## \[3.4.1\] - 2024-06-04 diff --git a/pueue/src/bin/pueue.rs b/pueue/src/bin/pueue.rs index ab4b996..ab97f62 100644 --- a/pueue/src/bin/pueue.rs +++ b/pueue/src/bin/pueue.rs @@ -4,7 +4,7 @@ use anyhow::{bail, Context, Result}; use clap::{CommandFactory, Parser}; use clap_complete::{generate, generate_to, shells}; use log::warn; -use simplelog::{Config, ConfigBuilder, LevelFilter, SimpleLogger}; +use simplelog::{Config, ConfigBuilder, LevelFilter, SimpleLogger, TermLogger, TerminalMode}; use pueue_lib::settings::Settings; @@ -51,7 +51,17 @@ async fn main() -> Result<()> { Ok(builder) => builder.build(), }; - SimpleLogger::init(level, logger_config).unwrap(); + // Init a terminal logger. If this fails for some reason, try fallback to a SimpleLogger + if TermLogger::init( + level, + logger_config.clone(), + TerminalMode::Stderr, + simplelog::ColorChoice::Auto, + ) + .is_err() + { + SimpleLogger::init(level, logger_config).unwrap(); + } // Try to read settings from the configuration file. let (mut settings, config_found) = diff --git a/pueue/src/bin/pueued.rs b/pueue/src/bin/pueued.rs index 3313cca..b637ba3 100644 --- a/pueue/src/bin/pueued.rs +++ b/pueue/src/bin/pueued.rs @@ -3,7 +3,7 @@ use std::process::Command; use anyhow::Result; use clap::Parser; use log::warn; -use simplelog::{Config, ConfigBuilder, LevelFilter, SimpleLogger}; +use simplelog::{Config, ConfigBuilder, LevelFilter, SimpleLogger, TermLogger, TerminalMode}; use pueue::daemon::cli::CliArguments; use pueue::daemon::run; @@ -35,7 +35,17 @@ async fn main() -> Result<()> { Ok(builder) => builder.build(), }; - SimpleLogger::init(level, logger_config).unwrap(); + // Init a terminal logger. If this fails for some reason, try fallback to a SimpleLogger + if TermLogger::init( + level, + logger_config.clone(), + TerminalMode::Stderr, + simplelog::ColorChoice::Auto, + ) + .is_err() + { + SimpleLogger::init(level, logger_config).unwrap(); + } run(opt.config, opt.profile, false).await } diff --git a/pueue/src/client/client.rs b/pueue/src/client/client.rs index cbbe54d..7dd145b 100644 --- a/pueue/src/client/client.rs +++ b/pueue/src/client/client.rs @@ -110,7 +110,7 @@ impl Client { }; if show_warning { - println!( + error!( "Different daemon version detected '{version}'. Consider restarting the daemon." ); }