File tree Expand file tree Collapse file tree 3 files changed +24
-1
lines changed Expand file tree Collapse file tree 3 files changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -87,3 +87,4 @@ nonblocking = false
8787enable-file-line = false
8888enable-file-name = false
8989buffered-lines-limit = 4096
90+ min-level = " INFO" # option: trace / debug / info / debug / error / all (i.e. trace) / off
Original file line number Diff line number Diff line change @@ -626,6 +626,10 @@ pub struct LogConfig {
626626 #[ serde( default ) ]
627627 pub format : LogFormat ,
628628
629+ /// set min level for logger
630+ #[ serde( default ) ]
631+ pub min_level : Option < String > ,
632+
629633 /// Nonblocking logging may reduce tail latency at the cost of higher memory usage
630634 #[ serde( default ) ]
631635 pub nonblocking : bool ,
Original file line number Diff line number Diff line change @@ -54,11 +54,29 @@ pub fn init_logging(name: &str) -> Option<WorkerGuard> {
5454 init_logging_with_filter (
5555 name,
5656 EnvFilter :: builder ( )
57- . with_default_directive ( LevelFilter :: INFO . into ( ) )
57+ . with_default_directive ( parse_level_filter ( ) . into ( ) )
5858 . from_env_lossy ( ) ,
5959 )
6060}
6161
62+ fn parse_level_filter ( ) -> LevelFilter {
63+ let level_filter = config ( )
64+ . logging
65+ . min_level
66+ . clone ( )
67+ . unwrap_or ( std:: env:: var ( EnvFilter :: DEFAULT_ENV ) . unwrap_or ( "info" . to_string ( ) ) ) ;
68+
69+ match level_filter. to_lowercase ( ) . as_str ( ) {
70+ "all" | "trace" => LevelFilter :: TRACE ,
71+ "debug" => LevelFilter :: DEBUG ,
72+ "info" => LevelFilter :: INFO ,
73+ "warn" => LevelFilter :: WARN ,
74+ "error" => LevelFilter :: ERROR ,
75+ "off" => LevelFilter :: OFF ,
76+ _ => LevelFilter :: INFO ,
77+ }
78+ }
79+
6280macro_rules! register_log {
6381 ( $e: expr, $nonblocking: expr, $filter: expr) => { {
6482 let layer = $e;
You can’t perform that action at this time.
0 commit comments