[pbs-devel] [PATCH] notify: migrate from `log` to `tracing`
Gabriel Goller
g.goller at proxmox.com
Thu Dec 5 11:18:20 CET 2024
Migrated from `log` to `tracing`. Imported `tracing` only as it has a
smaller footprint (and less dependencies) than `proxmox_log`.
Signed-off-by: Gabriel Goller <g.goller at proxmox.com>
---
proxmox-notify/Cargo.toml | 2 +-
proxmox-notify/src/config.rs | 6 ++++--
proxmox-notify/src/context/common.rs | 4 +++-
proxmox-notify/src/context/pbs.rs | 8 +++++---
proxmox-notify/src/endpoints/smtp.rs | 2 +-
proxmox-notify/src/lib.rs | 25 +++++++++++--------------
proxmox-notify/src/matcher.rs | 5 +++--
proxmox-notify/src/renderer/mod.rs | 3 ++-
8 files changed, 30 insertions(+), 25 deletions(-)
diff --git a/proxmox-notify/Cargo.toml b/proxmox-notify/Cargo.toml
index 725bd21070fb..5c700ca88fc9 100644
--- a/proxmox-notify/Cargo.toml
+++ b/proxmox-notify/Cargo.toml
@@ -18,7 +18,7 @@ const_format.workspace = true
handlebars = { workspace = true }
http = { workspace = true, optional = true }
lettre = { workspace = true, optional = true }
-log.workspace = true
+tracing.workspace = true
mail-parser = { workspace = true, optional = true }
openssl.workspace = true
percent-encoding = { workspace = true, optional = true }
diff --git a/proxmox-notify/src/config.rs b/proxmox-notify/src/config.rs
index 4d0b53f7aaf1..791e0b5fa6af 100644
--- a/proxmox-notify/src/config.rs
+++ b/proxmox-notify/src/config.rs
@@ -1,5 +1,7 @@
use std::sync::OnceLock;
+use tracing::warn;
+
use proxmox_schema::{ApiType, ObjectSchema};
use proxmox_section_config::{SectionConfig, SectionConfigData, SectionConfigPlugin};
@@ -148,7 +150,7 @@ pub fn config(raw_config: &str) -> Result<(SectionConfigData, [u8; 32]), Error>
// This mechanism cleans out left-over entries.
let entries: Vec<GroupConfig> = data.convert_to_typed_array("group").unwrap_or_default();
if !entries.is_empty() {
- log::warn!("clearing left-over 'group' entries from notifications.cfg");
+ warn!("clearing left-over 'group' entries from notifications.cfg");
}
for entry in entries {
@@ -157,7 +159,7 @@ pub fn config(raw_config: &str) -> Result<(SectionConfigData, [u8; 32]), Error>
let entries: Vec<FilterConfig> = data.convert_to_typed_array("filter").unwrap_or_default();
if !entries.is_empty() {
- log::warn!("clearing left-over 'filter' entries from notifications.cfg");
+ warn!("clearing left-over 'filter' entries from notifications.cfg");
}
for entry in entries {
diff --git a/proxmox-notify/src/context/common.rs b/proxmox-notify/src/context/common.rs
index 7580bd1a318b..88bacf527f5c 100644
--- a/proxmox-notify/src/context/common.rs
+++ b/proxmox-notify/src/context/common.rs
@@ -1,10 +1,12 @@
use std::path::Path;
+use tracing::error;
+
pub(crate) fn attempt_file_read<P: AsRef<Path>>(path: P) -> Option<String> {
match proxmox_sys::fs::file_read_optional_string(path) {
Ok(contents) => contents,
Err(err) => {
- log::error!("{err}");
+ error!("{err}");
None
}
}
diff --git a/proxmox-notify/src/context/pbs.rs b/proxmox-notify/src/context/pbs.rs
index 09c555e424cb..cd1176465543 100644
--- a/proxmox-notify/src/context/pbs.rs
+++ b/proxmox-notify/src/context/pbs.rs
@@ -1,6 +1,8 @@
-use serde::Deserialize;
use std::path::Path;
+use serde::Deserialize;
+use tracing::error;
+
use proxmox_schema::{ObjectSchema, Schema, StringSchema};
use proxmox_section_config::{SectionConfig, SectionConfigPlugin};
@@ -46,13 +48,13 @@ fn lookup_mail_address(content: &str, username: &str) -> Option<String> {
match parsed.lookup::<DummyPbsUser>("user", username) {
Ok(user) => common::normalize_for_return(user.email.as_deref()),
Err(err) => {
- log::error!("unable to parse {PBS_USER_CFG_FILENAME}: {err}");
+ error!("unable to parse {PBS_USER_CFG_FILENAME}: {err}");
None
}
}
}
Err(err) => {
- log::error!("unable to parse {PBS_USER_CFG_FILENAME}: {err}");
+ error!("unable to parse {PBS_USER_CFG_FILENAME}: {err}");
None
}
}
diff --git a/proxmox-notify/src/endpoints/smtp.rs b/proxmox-notify/src/endpoints/smtp.rs
index 973f7fadf2b1..6bb2d2d0c3e7 100644
--- a/proxmox-notify/src/endpoints/smtp.rs
+++ b/proxmox-notify/src/endpoints/smtp.rs
@@ -336,7 +336,7 @@ impl Endpoint for SmtpEndpoint {
let header = HeaderValue::new(name, value);
message.headers_mut().insert_raw(header);
}
- Err(e) => log::error!("could not set header: {e}"),
+ Err(e) => error!("could not set header: {e}"),
}
}
}
diff --git a/proxmox-notify/src/lib.rs b/proxmox-notify/src/lib.rs
index 12f3866b535d..12e59474850b 100644
--- a/proxmox-notify/src/lib.rs
+++ b/proxmox-notify/src/lib.rs
@@ -9,6 +9,7 @@ use context::context;
use serde::{Deserialize, Serialize};
use serde_json::json;
use serde_json::Value;
+use tracing::{error, info};
use proxmox_schema::api;
use proxmox_section_config::SectionConfigData;
@@ -299,9 +300,7 @@ impl Config {
if let Some(obj) = value.as_object_mut() {
obj.insert("origin".to_string(), Value::String("builtin".into()));
} else {
- log::error!(
- "section config entry is not an object. This should not happen"
- );
+ error!("section config entry is not an object. This should not happen");
}
} else {
// Entry is built-in, but it has been modified by the user.
@@ -311,9 +310,7 @@ impl Config {
Value::String("modified-builtin".into()),
);
} else {
- log::error!(
- "section config entry is not an object. This should not happen"
- );
+ error!("section config entry is not an object. This should not happen");
}
}
} else {
@@ -322,7 +319,7 @@ impl Config {
if let Some(obj) = val.as_object_mut() {
obj.insert("origin".to_string(), Value::String("builtin".into()));
} else {
- log::error!("section config entry is not an object. This should not happen");
+ error!("section config entry is not an object. This should not happen");
}
config
.set_data(key, builtin_typename, val)
@@ -356,7 +353,7 @@ impl Config {
if let Some(obj) = value.as_object_mut() {
obj.remove("origin");
} else {
- log::error!("section config entry is not an object. This should not happen");
+ error!("section config entry is not an object. This should not happen");
}
}
@@ -397,7 +394,7 @@ macro_rules! parse_endpoints_with_private_config {
match $config.private_config.sections.get(&config.name) {
Some((section_type_name, private_config)) => {
if $type_name != section_type_name {
- log::error!(
+ error!(
"Could not instantiate endpoint '{name}': \
private config has wrong type",
name = config.name
@@ -411,7 +408,7 @@ macro_rules! parse_endpoints_with_private_config {
private_config: private_config.clone(),
}));
}
- None => log::error!(
+ None => error!(
"Could not instantiate endpoint '{name}': \
private config does not exist",
name = config.name
@@ -551,21 +548,21 @@ impl Bus {
if endpoint.disabled() {
// Skip this target if it is disabled
- log::info!("skipping disabled target '{name}'");
+ info!("skipping disabled target '{name}'");
continue;
}
match endpoint.send(notification) {
Ok(_) => {
- log::info!("notified via target `{name}`");
+ info!("notified via target `{name}`");
}
Err(e) => {
// Only log on errors, do not propagate fail to the caller.
- log::error!("could not notify via target `{name}`: {e}");
+ error!("could not notify via target `{name}`: {e}");
}
}
} else {
- log::error!("could not notify via target '{target}', it does not exist");
+ error!("could not notify via target '{target}', it does not exist");
}
}
}
diff --git a/proxmox-notify/src/matcher.rs b/proxmox-notify/src/matcher.rs
index 7fb2c9b18b7c..083c2dbda5d5 100644
--- a/proxmox-notify/src/matcher.rs
+++ b/proxmox-notify/src/matcher.rs
@@ -6,6 +6,7 @@ use std::str::FromStr;
use const_format::concatcp;
use regex::Regex;
use serde::{Deserialize, Serialize};
+use tracing::{error, info};
use proxmox_schema::api_types::{COMMENT_SCHEMA, SAFE_ID_REGEX_STR};
use proxmox_schema::{api, const_regex, ApiStringFormat, Schema, StringSchema, Updater};
@@ -445,7 +446,7 @@ pub fn check_matches<'a>(
for matcher in matchers {
if matcher.disable.unwrap_or_default() {
// Skip this matcher if it is disabled
- log::info!("skipping disabled matcher '{name}'", name = matcher.name);
+ info!("skipping disabled matcher '{name}'", name = matcher.name);
continue;
}
@@ -454,7 +455,7 @@ pub fn check_matches<'a>(
let t = t.unwrap_or_default();
targets.extend(t.iter().map(|s| s.as_str()));
}
- Err(err) => log::error!("matcher '{matcher}' failed: {err}", matcher = matcher.name),
+ Err(err) => error!("matcher '{matcher}' failed: {err}", matcher = matcher.name),
}
}
diff --git a/proxmox-notify/src/renderer/mod.rs b/proxmox-notify/src/renderer/mod.rs
index 393cbbf2775c..e058ea2218b0 100644
--- a/proxmox-notify/src/renderer/mod.rs
+++ b/proxmox-notify/src/renderer/mod.rs
@@ -8,6 +8,7 @@ use handlebars::{
};
use serde::{Deserialize, Serialize};
use serde_json::Value;
+use tracing::error;
use proxmox_human_byte::HumanByte;
use proxmox_time::TimeSpan;
@@ -142,7 +143,7 @@ impl ValueRenderFunction {
ValueRenderFunction::Timestamp => value_to_timestamp(value),
}
.unwrap_or_else(|| {
- log::error!("could not render value {value} with renderer {self:?}");
+ error!("could not render value {value} with renderer {self:?}");
String::from("ERROR")
})
}
--
2.39.5
More information about the pbs-devel
mailing list