From 2d7ed5c67e1951dba4405eaad3d829385ac3fb4e Mon Sep 17 00:00:00 2001 From: Evgenii Lepikhin Date: Mon, 28 Nov 2022 16:42:00 +0300 Subject: [PATCH 1/3] fix: Compare log level --- lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib.rs b/lib.rs index 2732cb9..acd7db2 100644 --- a/lib.rs +++ b/lib.rs @@ -146,7 +146,7 @@ impl Drain for Streamer3164 { type Ok = (); fn log(&self, info: &Record, logger_values: &OwnedKVList) -> io::Result<()> { - if self.level > info.level() { + if self.level.as_usize() < info.level().as_usize() { return Ok(()) } TL_BUF.with(|buf| { From f93d01001b245b610f42f5a8eeba9dd8ec1f239c Mon Sep 17 00:00:00 2001 From: Evgenii Lepikhin Date: Mon, 28 Nov 2022 16:42:14 +0300 Subject: [PATCH 2/3] refactor: Reindented with rustfmt --- lib.rs | 46 +++++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/lib.rs b/lib.rs index acd7db2..a5dc08e 100644 --- a/lib.rs +++ b/lib.rs @@ -26,12 +26,12 @@ #![warn(missing_docs)] use slog::{Drain, Level, OwnedKVList, Record}; -use std::{fmt, io}; -use std::sync::Mutex; use std::cell::RefCell; -use std::path::{Path, PathBuf}; -use std::net::SocketAddr; use std::io::{Error, ErrorKind}; +use std::net::SocketAddr; +use std::path::{Path, PathBuf}; +use std::sync::Mutex; +use std::{fmt, io}; use slog::KV; @@ -44,12 +44,15 @@ thread_local! { type SysLogger = syslog::Logger; #[inline] -fn handle_syslog_error(e: syslog::Error) -> io::Error -{ +fn handle_syslog_error(e: syslog::Error) -> io::Error { Error::new(ErrorKind::Other, e.to_string()) } -fn log_with_level(level: slog::Level, mut io: std::sync::MutexGuard>, buf: &str) -> io::Result<()> { +fn log_with_level( + level: slog::Level, + mut io: std::sync::MutexGuard>, + buf: &str, +) -> io::Result<()> { let err = match level { Level::Critical => io.crit(&buf), Level::Error => io.err(&buf), @@ -61,14 +64,17 @@ fn log_with_level(level: slog::Level, mut io: std::sync::MutexGuard) -> syslog::Formatter3164 { - let path = std::env::current_exe() - .unwrap_or_else(|_| PathBuf::new()); - let process = path.file_name() +fn syslog_format3164( + facility: syslog::Facility, + hostname: Option, +) -> syslog::Formatter3164 { + let path = std::env::current_exe().unwrap_or_else(|_| PathBuf::new()); + let process = path + .file_name() .map(|file| file.to_string_lossy().into_owned()) .unwrap_or_else(|| String::new()); @@ -102,7 +108,8 @@ fn get_default_level() -> Level { Level::Warning } else if cfg!(feature = "max_level_error") { Level::Error - } else { // max_level_off + } else { + // max_level_off Level::Critical } } @@ -119,7 +126,8 @@ fn get_default_level() -> Level { Level::Warning } else if cfg!(feature = "release_max_level_error") { Level::Error - } else { // release_max_level_off + } else { + // release_max_level_off Level::Critical } } @@ -147,15 +155,15 @@ impl Drain for Streamer3164 { fn log(&self, info: &Record, logger_values: &OwnedKVList) -> io::Result<()> { if self.level.as_usize() < info.level().as_usize() { - return Ok(()) + return Ok(()); } TL_BUF.with(|buf| { let mut buf = buf.borrow_mut(); let res = { || { self.format.format(&mut *buf, info, logger_values)?; - let io = - self.io + let io = self + .io .lock() .map_err(|_| Error::new(ErrorKind::Other, "locking error"))?; @@ -326,11 +334,11 @@ impl SyslogBuilder { } => { let format = syslog_format3164(facility, Some(hostname)); syslog::udp(format, local, host).map_err(handle_syslog_error)? - }, + } SyslogKind::Tcp { server, hostname } => { let format = syslog_format3164(facility, Some(hostname)); syslog::tcp(format, server).map_err(handle_syslog_error)? - }, + } }; Ok(Streamer3164::new_with_level(Box::new(log), self.level)) } From cb45df5abfd1241d877e8a1b6c139ed883fa92fb Mon Sep 17 00:00:00 2001 From: Evgenii Lepikhin Date: Mon, 28 Nov 2022 16:48:15 +0300 Subject: [PATCH 3/3] fix: Issues reported by cargo clippy --- lib.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lib.rs b/lib.rs index a5dc08e..ebee894 100644 --- a/lib.rs +++ b/lib.rs @@ -76,7 +76,7 @@ fn syslog_format3164( let process = path .file_name() .map(|file| file.to_string_lossy().into_owned()) - .unwrap_or_else(|| String::new()); + .unwrap_or_default(); syslog::Formatter3164 { facility, @@ -179,6 +179,7 @@ impl Drain for Streamer3164 { } /// Formatter to format defined in RFC 3164 +#[derive(Default)] pub struct Format3164; impl Format3164 { @@ -195,7 +196,7 @@ impl Format3164 { ) -> io::Result<()> { write!(io, "{}", record.msg())?; - let mut ser = KSV::new(io); + let mut ser = KeyValueSerializer::new(io); { logger_kv.serialize(record, &mut ser)?; record.kv().serialize(record, &mut ser)?; @@ -205,17 +206,17 @@ impl Format3164 { } /// Key-Separator-Value serializer -struct KSV { +struct KeyValueSerializer { io: W, } -impl KSV { +impl KeyValueSerializer { fn new(io: W) -> Self { - KSV { io: io } + KeyValueSerializer { io } } } -impl slog::Serializer for KSV { +impl slog::Serializer for KeyValueSerializer { fn emit_arguments(&mut self, key: &str, val: &fmt::Arguments) -> slog::Result { write!(self.io, ", {}: {}", key, val)?; Ok(())