pubhubs/servers/config/
log.rs1use serde::{Deserialize, Serialize};
3
4#[derive(Serialize, Deserialize, Debug, Clone, Default)]
5#[serde(deny_unknown_fields)]
6pub struct LogConfig {
7 #[serde(default)]
8 level: Option<log::LevelFilter>,
9
10 #[serde(default)]
11 modules: indexmap::IndexMap<String, log::LevelFilter>,
12}
13
14impl LogConfig {
15 pub fn try_init_env_logger(&self) {
17 let mut builder = env_logger::Builder::from_default_env();
18
19 if let Some(level) = self.level {
20 builder.filter_level(level);
21 }
22
23 for (module, level) in &self.modules {
24 builder.filter_module(module, *level);
25 }
26
27 if builder.try_init().is_err() {
28 log::warn!(
29 "not using logger configuration from configuration file: logger already initialized by RUST_LOG environmental variable"
30 );
31 };
32 }
33}