pub struct Logger { /* private fields */ }
Expand description
The configuration for logging.
Implementations§
Source§impl Logger
impl Logger
Sourcepub fn init_logging() -> Result<(), ExitError>
pub fn init_logging() -> Result<(), ExitError>
Initialize logging.
Initializes the logging system so it can be used before having
read the configuration. The function sets a maximum log level of
warn
, leading to only printing important information, and directs
all log output to stderr.
Examples found in repository?
24fn _main() -> Result<(), ExitError> {
25 Logger::init_logging()?;
26 warn!("Logging initialized.");
27
28 let args = Args::parse();
29 let log = Logger::from_config(&args.log.to_config())?;
30 let mut process = Process::from_config(args.process.into_config());
31
32 log.switch_logging(args.detach)?;
33 process.setup_daemon(args.detach)?;
34
35 // This is where you create listener sockets so they can use privileged
36 // ports.
37
38 process.drop_privileges()?;
39
40 warn!("Up and running.");
41
42 // This is where we do something useful later.
43 loop {
44 std::thread::sleep(std::time::Duration::from_secs(60));
45 }
46
47 //Ok(())
48}
Sourcepub fn from_config(config: &Config) -> Result<Self, Failed>
pub fn from_config(config: &Config) -> Result<Self, Failed>
Creates the logger from a config struct.
Examples found in repository?
24fn _main() -> Result<(), ExitError> {
25 Logger::init_logging()?;
26 warn!("Logging initialized.");
27
28 let args = Args::parse();
29 let log = Logger::from_config(&args.log.to_config())?;
30 let mut process = Process::from_config(args.process.into_config());
31
32 log.switch_logging(args.detach)?;
33 process.setup_daemon(args.detach)?;
34
35 // This is where you create listener sockets so they can use privileged
36 // ports.
37
38 process.drop_privileges()?;
39
40 warn!("Up and running.");
41
42 // This is where we do something useful later.
43 loop {
44 std::thread::sleep(std::time::Duration::from_secs(60));
45 }
46
47 //Ok(())
48}
Sourcepub fn switch_logging(&self, daemon: bool) -> Result<(), Failed>
pub fn switch_logging(&self, daemon: bool) -> Result<(), Failed>
Switches logging to the configured target.
Once the configuration has been successfully loaded, logging should be switched to whatever the user asked for via this method.
The daemon
argument changes how the default log target is
interpreted: If it is true
, syslog is used on Unix systems if
available via one of the standard Unix sockets. Otherwise, stderr is
used.
This method should only be called once. It returns an error if called again.
Examples found in repository?
24fn _main() -> Result<(), ExitError> {
25 Logger::init_logging()?;
26 warn!("Logging initialized.");
27
28 let args = Args::parse();
29 let log = Logger::from_config(&args.log.to_config())?;
30 let mut process = Process::from_config(args.process.into_config());
31
32 log.switch_logging(args.detach)?;
33 process.setup_daemon(args.detach)?;
34
35 // This is where you create listener sockets so they can use privileged
36 // ports.
37
38 process.drop_privileges()?;
39
40 warn!("Up and running.");
41
42 // This is where we do something useful later.
43 loop {
44 std::thread::sleep(std::time::Duration::from_secs(60));
45 }
46
47 //Ok(())
48}
Sourcepub fn rotate_log(&self) -> Result<(), Failed>
pub fn rotate_log(&self) -> Result<(), Failed>
Rotates the log file if necessary.