Skip to main content

nano_rs_core/config/
logger.rs

1use std::collections::HashMap;
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Default, PartialEq, Serialize, Deserialize, Clone)]
6pub struct LoggerConfig {
7    #[serde(default = "default_logging")]
8    pub logging: HashMap<String, LoggerFileConfig>,
9
10    #[serde(default = "default_enable_request_body_log")]
11    pub enable_request_body_log: bool,
12}
13
14fn default_enable_request_body_log() -> bool {
15    true
16}
17
18fn default_logging() -> HashMap<String, LoggerFileConfig> {
19    let mut map = HashMap::new();
20    map.insert("tower_http".to_string(), LoggerFileConfig {
21        name: None,
22        level: "debug".to_string(),
23        dir: None,
24        debug: None,
25        info: None,
26        trace: None,
27        error: None,
28        warn: None,
29    });
30    map
31}
32
33#[derive(Debug, Default, PartialEq, Serialize, Deserialize, Clone)]
34pub struct LoggerFileConfig {
35    pub name: Option<String>,
36    #[serde(default = "default_level")]
37    pub level: String,
38    pub dir: Option<String>,
39    pub debug: Option<String>,
40    pub info: Option<String>,
41    pub trace: Option<String>,
42    pub error: Option<String>,
43    pub warn: Option<String>,
44}
45
46fn default_level() -> String {
47    "info".to_string()
48}