@@ -98,18 +98,25 @@ async fn main_impl() -> Result<i32> {
98
98
}
99
99
100
100
fn setup_logging ( logpath : Option < PathBuf > , verbosity : u64 ) -> Result < ( ) > {
101
- helix_loader:: setup_log_file ( logpath) ;
101
+ let log_level = match verbosity {
102
+ 0 => std:: env:: var ( "HELIX_LOG_LEVEL" ) ?
103
+ . parse ( )
104
+ . unwrap_or ( log:: LevelFilter :: Warn ) ,
105
+ 1 => log:: LevelFilter :: Info ,
106
+ 2 => log:: LevelFilter :: Debug ,
107
+ _3_or_more => log:: LevelFilter :: Trace ,
108
+ } ;
109
+
110
+ #[ cfg( feature = "integration" ) ]
111
+ let logger: fern:: Output = std:: io:: stdout ( ) . into ( ) ;
102
112
103
- let mut base_config = fern:: Dispatch :: new ( ) ;
104
- base_config = match verbosity {
105
- 0 => base_config. level ( log:: LevelFilter :: Warn ) ,
106
- 1 => base_config. level ( log:: LevelFilter :: Info ) ,
107
- 2 => base_config. level ( log:: LevelFilter :: Debug ) ,
108
- _3_or_more => base_config. level ( log:: LevelFilter :: Trace ) ,
113
+ #[ cfg( not( feature = "integration" ) ) ]
114
+ let logger: fern:: Output = {
115
+ helix_loader:: setup_log_file ( logpath) ;
116
+ fern:: log_file ( helix_loader:: log_file ( ) ) ?. into ( )
109
117
} ;
110
118
111
- // Separate file config so we can include year, month and day in file logs
112
- let file_config = fern:: Dispatch :: new ( )
119
+ fern:: Dispatch :: new ( )
113
120
. format ( |out, message, record| {
114
121
out. finish ( format_args ! (
115
122
"{} {} [{}] {}" ,
@@ -119,7 +126,8 @@ fn setup_logging(logpath: Option<PathBuf>, verbosity: u64) -> Result<()> {
119
126
message
120
127
) )
121
128
} )
122
- . chain ( fern:: log_file ( helix_loader:: log_file ( ) ) ?) ;
123
- base_config. chain ( file_config) . apply ( ) ?;
124
- Ok ( ( ) )
129
+ . level ( log_level)
130
+ . chain ( logger)
131
+ . apply ( )
132
+ . map_err ( |err| anyhow:: anyhow!( err) )
125
133
}
0 commit comments