Skip to main content

syslog_too/
logger.rs

1//! Defines a generic logger struct trait implementations.
2
3use std::io::Write;
4
5pub mod backend;
6pub mod rfc3164;
7pub mod rfc5424;
8
9use crate::errors::Result;
10use crate::format::LogFormat;
11
12pub use self::backend::LoggerBackend;
13pub use self::rfc3164::Logger3164;
14pub use self::rfc5424::Logger5424;
15
16/// Generic main logging structure
17pub struct Logger<Backend: Write, Formatter> {
18    pub formatter: Formatter,
19    pub backend: Backend,
20}
21
22impl<W: Write, F> Logger<W, F> {
23    pub fn new(backend: W, formatter: F) -> Self {
24        Logger { backend, formatter }
25    }
26
27    pub fn emerg<T>(&mut self, message: T) -> Result<()>
28    where
29        F: LogFormat<T>,
30    {
31        self.formatter.emerg(&mut self.backend, message)
32    }
33
34    pub fn alert<T>(&mut self, message: T) -> Result<()>
35    where
36        F: LogFormat<T>,
37    {
38        self.formatter.alert(&mut self.backend, message)
39    }
40
41    pub fn crit<T>(&mut self, message: T) -> Result<()>
42    where
43        F: LogFormat<T>,
44    {
45        self.formatter.crit(&mut self.backend, message)
46    }
47
48    pub fn err<T>(&mut self, message: T) -> Result<()>
49    where
50        F: LogFormat<T>,
51    {
52        self.formatter.err(&mut self.backend, message)
53    }
54
55    pub fn warning<T>(&mut self, message: T) -> Result<()>
56    where
57        F: LogFormat<T>,
58    {
59        self.formatter.warning(&mut self.backend, message)
60    }
61
62    pub fn notice<T>(&mut self, message: T) -> Result<()>
63    where
64        F: LogFormat<T>,
65    {
66        self.formatter.notice(&mut self.backend, message)
67    }
68
69    pub fn info<T>(&mut self, message: T) -> Result<()>
70    where
71        F: LogFormat<T>,
72    {
73        self.formatter.info(&mut self.backend, message)
74    }
75
76    pub fn debug<T>(&mut self, message: T) -> Result<()>
77    where
78        F: LogFormat<T>,
79    {
80        self.formatter.debug(&mut self.backend, message)
81    }
82}