* [pve-devel] [PATCH proxmox] log: add perlmod logger
@ 2024-12-05 10:16 Gabriel Goller
2024-12-05 10:16 ` [pve-devel] [PATCH proxmox-perl-rs] log: change default output to stderr and only log errors to journald Gabriel Goller
0 siblings, 1 reply; 5+ messages in thread
From: Gabriel Goller @ 2024-12-05 10:16 UTC (permalink / raw)
To: pve-devel; +Cc: Lukas Wagner
Add special logger for perlmod. This one will print everything to
stderr (which will end up in the tasklog) and the errors to journald.
Reported-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
Reported-by: Lukas Wagner <l.wagner@proxmox.com>
Signed-off-by: Gabriel Goller <g.goller@proxmox.com>
---
proxmox-log/src/lib.rs | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/proxmox-log/src/lib.rs b/proxmox-log/src/lib.rs
index 8c74e42b618d..5713c094e981 100644
--- a/proxmox-log/src/lib.rs
+++ b/proxmox-log/src/lib.rs
@@ -191,3 +191,38 @@ pub fn init_cli_logger(
LogTracer::init_with_filter(log_level.as_log())?;
Ok(())
}
+
+/// Initialize logger for perlmod
+///
+/// This logger will log everything to stderr (which will land in the tasklog)
+/// and the errors to syslog as well.
+pub fn init_perlmod_logger(
+ env_var_name: &str,
+ default_log_level: LevelFilter,
+) -> Result<(), anyhow::Error> {
+ let mut log_level = default_log_level;
+ if let Ok(v) = env::var(env_var_name) {
+ match v.parse::<LevelFilter>() {
+ Ok(l) => {
+ log_level = l;
+ }
+ Err(e) => {
+ eprintln!("env variable {env_var_name} found, but parsing failed: {e:?}");
+ }
+ }
+ }
+
+ let registry = tracing_subscriber::registry()
+ .with(
+ tracing_journald::layer().ok()
+ .with_filter(filter_fn(|metadata| {
+ *metadata.level() == Level::ERROR
+ }))
+ .with_filter(log_level),
+ )
+ .with(plain_stderr_layer().with_filter(log_level));
+
+ tracing::subscriber::set_global_default(registry)?;
+ LogTracer::init_with_filter(log_level.as_log())?;
+ Ok(())
+}
--
2.39.5
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* [pve-devel] [PATCH proxmox-perl-rs] log: change default output to stderr and only log errors to journald
2024-12-05 10:16 [pve-devel] [PATCH proxmox] log: add perlmod logger Gabriel Goller
@ 2024-12-05 10:16 ` Gabriel Goller
2024-12-05 10:18 ` Lukas Wagner
0 siblings, 1 reply; 5+ messages in thread
From: Gabriel Goller @ 2024-12-05 10:16 UTC (permalink / raw)
To: pve-devel; +Cc: Lukas Wagner
Change the from the pbs logger to the special perlmod logger, which logs
every line to stderr and the errors directly to journald.
Previously every perlmod output went directly to journald, now it is
also visible in the tasklog (through stderr).
Reported-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
Reported-by: Lukas Wagner <l.wagner@proxmox.com>
Signed-off-by: Gabriel Goller <g.goller@proxmox.com>
---
common/src/logger.rs | 2 +-
pve-rs/Cargo.toml | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/common/src/logger.rs b/common/src/logger.rs
index 1c8940ba4588..9bae08232d03 100644
--- a/common/src/logger.rs
+++ b/common/src/logger.rs
@@ -5,7 +5,7 @@ pub fn init(env_var_name: &str, default_log_level: &str) {
if let Err(e) = default_log_level
.parse()
.map_err(Error::from)
- .and_then(|default_log_level| proxmox_log::init_logger(env_var_name, default_log_level))
+ .and_then(|default_log_level| proxmox_log::init_perlmod_logger(env_var_name, default_log_level))
{
eprintln!("could not set up env_logger: {e:?}");
}
diff --git a/pve-rs/Cargo.toml b/pve-rs/Cargo.toml
index 4b6dec6ff452..2c06c8de176b 100644
--- a/pve-rs/Cargo.toml
+++ b/pve-rs/Cargo.toml
@@ -35,9 +35,9 @@ proxmox-apt = { version = "0.11.5", features = ["cache"] }
proxmox-apt-api-types = "1.0"
proxmox-config-digest = "0.1"
proxmox-http = { version = "0.9", features = ["client-sync", "client-trait"] }
-proxmox-http-error = "0.1.0"
-proxmox-log = "0.2"
-proxmox-notify = { version = "0.5", features = ["pve-context"] }
+proxmox-http-error = { version = "0.1.0", path="/home/ggoller/dev/proxmox/perlmod_logger/proxmox-http-error/" }
+proxmox-log = {version = "0.2", path="/home/ggoller/dev/proxmox/perlmod_logger/proxmox-log/" }
+proxmox-notify = { version = "0.5", features = ["pve-context"], path="/home/ggoller/dev/proxmox/perlmod_logger/proxmox-notify/" }
proxmox-openid = "0.10"
proxmox-resource-scheduling = "0.3.0"
proxmox-shared-cache = "0.1.0"
--
2.39.5
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [pve-devel] [PATCH proxmox-perl-rs] log: change default output to stderr and only log errors to journald
2024-12-05 10:16 ` [pve-devel] [PATCH proxmox-perl-rs] log: change default output to stderr and only log errors to journald Gabriel Goller
@ 2024-12-05 10:18 ` Lukas Wagner
2024-12-05 10:20 ` Gabriel Goller
0 siblings, 1 reply; 5+ messages in thread
From: Lukas Wagner @ 2024-12-05 10:18 UTC (permalink / raw)
To: Gabriel Goller, pve-devel
On 2024-12-05 11:16, Gabriel Goller wrote:
> -proxmox-http-error = "0.1.0"
> -proxmox-log = "0.2"
> -proxmox-notify = { version = "0.5", features = ["pve-context"] }
> +proxmox-http-error = { version = "0.1.0", path="/home/ggoller/dev/proxmox/perlmod_logger/proxmox-http-error/" }
> +proxmox-log = {version = "0.2", path="/home/ggoller/dev/proxmox/perlmod_logger/proxmox-log/" }
> +proxmox-notify = { version = "0.5", features = ["pve-context"], path="/home/ggoller/dev/proxmox/perlmod_logger/proxmox-notify/" }
> proxmox-openid = "0.10"
> proxmox-resource-scheduling = "0.3.0"
> proxmox-shared-cache = "0.1.0"
I think these changes snuck in by accident :)
--
- Lukas
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [pve-devel] [PATCH proxmox-perl-rs] log: change default output to stderr and only log errors to journald
2024-12-05 10:18 ` Lukas Wagner
@ 2024-12-05 10:20 ` Gabriel Goller
2024-12-05 10:21 ` Gabriel Goller
0 siblings, 1 reply; 5+ messages in thread
From: Gabriel Goller @ 2024-12-05 10:20 UTC (permalink / raw)
To: Lukas Wagner; +Cc: pve-devel
On 05.12.2024 11:18, Lukas Wagner wrote:
>
>
>On 2024-12-05 11:16, Gabriel Goller wrote:
>> -proxmox-http-error = "0.1.0"
>> -proxmox-log = "0.2"
>> -proxmox-notify = { version = "0.5", features = ["pve-context"] }
>> +proxmox-http-error = { version = "0.1.0", path="/home/ggoller/dev/proxmox/perlmod_logger/proxmox-http-error/" }
>> +proxmox-log = {version = "0.2", path="/home/ggoller/dev/proxmox/perlmod_logger/proxmox-log/" }
>> +proxmox-notify = { version = "0.5", features = ["pve-context"], path="/home/ggoller/dev/proxmox/perlmod_logger/proxmox-notify/" }
>> proxmox-openid = "0.10"
>> proxmox-resource-scheduling = "0.3.0"
>> proxmox-shared-cache = "0.1.0"
>
>I think these changes snuck in by accident :)
rookie mistake smh, my bad.
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [pve-devel] [PATCH proxmox-perl-rs] log: change default output to stderr and only log errors to journald
2024-12-05 10:20 ` Gabriel Goller
@ 2024-12-05 10:21 ` Gabriel Goller
0 siblings, 0 replies; 5+ messages in thread
From: Gabriel Goller @ 2024-12-05 10:21 UTC (permalink / raw)
To: Lukas Wagner; +Cc: pve-devel
On 05.12.2024 11:20, Gabriel Goller wrote:
>On 05.12.2024 11:18, Lukas Wagner wrote:
>>
>>
>>On 2024-12-05 11:16, Gabriel Goller wrote:
>>>-proxmox-http-error = "0.1.0"
>>>-proxmox-log = "0.2"
>>>-proxmox-notify = { version = "0.5", features = ["pve-context"] }
>>>+proxmox-http-error = { version = "0.1.0", path="/home/ggoller/dev/proxmox/perlmod_logger/proxmox-http-error/" }
>>>+proxmox-log = {version = "0.2", path="/home/ggoller/dev/proxmox/perlmod_logger/proxmox-log/" }
>>>+proxmox-notify = { version = "0.5", features = ["pve-context"], path="/home/ggoller/dev/proxmox/perlmod_logger/proxmox-notify/" }
>>> proxmox-openid = "0.10"
>>> proxmox-resource-scheduling = "0.3.0"
>>> proxmox-shared-cache = "0.1.0"
>>
>>I think these changes snuck in by accident :)
>
>rookie mistake smh, my bad.
New version on the list!
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-12-05 10:22 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-12-05 10:16 [pve-devel] [PATCH proxmox] log: add perlmod logger Gabriel Goller
2024-12-05 10:16 ` [pve-devel] [PATCH proxmox-perl-rs] log: change default output to stderr and only log errors to journald Gabriel Goller
2024-12-05 10:18 ` Lukas Wagner
2024-12-05 10:20 ` Gabriel Goller
2024-12-05 10:21 ` Gabriel Goller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox