Skip to content

Commit 489d7de

Browse files
committed
write loggers to use translation
1 parent 96c6ad1 commit 489d7de

File tree

4 files changed

+21
-17
lines changed

4 files changed

+21
-17
lines changed

src/log/mod.rs

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,33 +9,34 @@ mod simple_logger;
99
mod syslog;
1010

1111
macro_rules! logger_macro {
12-
($name:ident is $rule_level:ident to $target:expr, $d:tt) => {
12+
($name:ident is $rule_level:ident to $target:literal with $($path1:ident)?$(::$path2:ident)*, $d:tt) => {
1313
macro_rules! $name {
1414
($d($d arg:tt)+) => {
1515
if let Some(logger) = $crate::log::LOGGER.get() {
16-
logger.log($crate::log::Level::$rule_level, $target, format_args!($d($d arg)+));
16+
logger.log($crate::log::Level::$rule_level, $target, $($path1)?$(::$path2)*!($d($d arg)+));
1717
}
1818
};
1919
}
2020

2121
pub(crate) use $name;
2222
};
23-
($name:ident is $rule_level:ident to $target:expr) => {
24-
logger_macro!($name is $rule_level to $target, $);
23+
24+
($name:ident is $rule_level:ident to $target:literal with $($path1:ident)?$(::$path2:ident)*) => {
25+
logger_macro!($name is $rule_level to $target with $($path1)?$(::$path2)*, $);
2526
};
2627
}
2728

2829
// logger_macro!(auth_error is Error to "sudo::auth");
29-
logger_macro!(auth_warn is Warn to "sudo::auth");
30-
logger_macro!(auth_info is Info to "sudo::auth");
31-
// logger_macro!(auth_debug is Debug to "sudo::auth");
32-
// logger_macro!(auth_trace is Trace to "sudo::auth");
30+
logger_macro!(auth_warn is Warn to "sudo::auth" with format_args);
31+
logger_macro!(auth_info is Info to "sudo::auth" with format_args);
32+
// logger_macro!(auth_debug is Debug to "sudo::auth" with format_args);
33+
// logger_macro!(auth_trace is Trace to "sudo::auth" with format_args);
3334

34-
logger_macro!(user_error is Error to "sudo::user");
35-
logger_macro!(user_warn is Warn to "sudo::user");
36-
logger_macro!(user_info is Info to "sudo::user");
37-
// logger_macro!(user_debug is Debug to "sudo::user");
38-
// logger_macro!(user_trace is Trace to "sudo::user");
35+
logger_macro!(user_error is Error to "sudo::user" with crate::gettext::xlat);
36+
logger_macro!(user_warn is Warn to "sudo::user" with crate::gettext::xlat);
37+
logger_macro!(user_info is Info to "sudo::user" with crate::gettext::xlat);
38+
// logger_macro!(user_debug is Debug to "sudo::user" with crate::gettext::xlat);
39+
// logger_macro!(user_trace is Trace to "sudo::user" with crate::gettext::xlat);
3940

4041
macro_rules! dev_logger_macro {
4142
($name:ident is $rule_level:ident to $target:expr, $d:tt) => {
@@ -119,7 +120,7 @@ impl SudoLogger {
119120
}
120121

121122
impl SudoLogger {
122-
pub fn log(&self, level: Level, target: &str, args: fmt::Arguments<'_>) {
123+
pub fn log(&self, level: Level, target: &str, args: impl fmt::Display) {
123124
for (prefix, l) in self.0.iter() {
124125
if target == &prefix[..prefix.len() - 2] || target.starts_with(prefix) {
125126
l.log(level, &args);
@@ -139,7 +140,7 @@ pub enum Level {
139140
}
140141

141142
trait Log: Send + Sync {
142-
fn log(&self, level: Level, args: &fmt::Arguments<'_>);
143+
fn log(&self, level: Level, args: &dyn fmt::Display);
143144
}
144145

145146
#[cfg(test)]

src/log/simple_logger.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ impl<W: Send + Sync> Log for SimpleLogger<W>
1818
where
1919
for<'a> &'a W: Write,
2020
{
21-
fn log(&self, _level: Level, args: &fmt::Arguments<'_>) {
21+
fn log(&self, _level: Level, args: &dyn fmt::Display) {
2222
let s = format!("{}{}\n", self.prefix, args);
2323
let _ = (&self.target).write_all(s.as_bytes());
2424
let _ = (&self.target).flush();

src/log/syslog.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ impl Write for SysLogMessageWriter {
131131
const FACILITY: c_int = libc::LOG_AUTH;
132132

133133
impl Log for Syslog {
134-
fn log(&self, level: Level, args: &fmt::Arguments<'_>) {
134+
fn log(&self, level: Level, args: &dyn fmt::Display) {
135135
let priority = match level {
136136
Level::Error => libc::LOG_ERR,
137137
Level::Warn => libc::LOG_WARNING,

util/make-pot.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ find "$WORK_ROOT" -name "*.rs" -not -name "gettext.rs" | xargs xgettext \
2020
--from-code="UTF-8" \
2121
--keyword='xlat!' \
2222
--keyword='xlat_write!:2' \
23+
--keyword='user_error!:1' \
24+
--keyword='user_info!:1' \
25+
--keyword='user_warn!:1' \
2326
--add-comments='TRANSLATORS:' \
2427
${EXISTING:-} \
2528
-o "$potfile"

0 commit comments

Comments
 (0)