@@ -225,7 +225,7 @@ fn make_logger() -> Logger {
225
225
let debug = env:: var ( "STACKS_LOG_DEBUG" ) == Ok ( "1" . into ( ) ) ;
226
226
let pretty_print = env:: var ( "STACKS_LOG_PP" ) == Ok ( "1" . into ( ) ) ;
227
227
let decorator = get_decorator ( ) ;
228
- let atty = isatty ( Stream :: Stderr ) ;
228
+ let atty = isatty ( ) ;
229
229
let drain = TermFormat :: new ( decorator, pretty_print, debug, atty) ;
230
230
Logger :: root ( drain. ignore_res ( ) , o ! ( ) )
231
231
}
@@ -236,11 +236,23 @@ fn get_decorator() -> slog_term::PlainSyncDecorator<slog_term::TestStdoutWriter>
236
236
slog_term:: PlainSyncDecorator :: new ( slog_term:: TestStdoutWriter )
237
237
}
238
238
239
+ #[ cfg( any( test, feature = "testing" ) ) ]
240
+ fn isatty ( ) -> bool {
241
+ use std:: io:: IsTerminal ;
242
+ io:: stdout ( ) . is_terminal ( )
243
+ }
244
+
239
245
#[ cfg( not( any( test, feature = "testing" ) ) ) ]
240
246
fn get_decorator ( ) -> slog_term:: PlainSyncDecorator < std:: io:: Stderr > {
241
247
slog_term:: PlainSyncDecorator :: new ( std:: io:: stderr ( ) )
242
248
}
243
249
250
+ #[ cfg( not( any( test, feature = "testing" ) ) ) ]
251
+ fn isatty ( ) -> bool {
252
+ use std:: io:: IsTerminal ;
253
+ io:: stderr ( ) . is_terminal ( )
254
+ }
255
+
244
256
fn inner_get_loglevel ( ) -> slog:: Level {
245
257
if env:: var ( "STACKS_LOG_TRACE" ) == Ok ( "1" . into ( ) ) {
246
258
slog:: Level :: Trace
@@ -331,39 +343,17 @@ fn color_if_tty(color: &str, isatty: bool) -> &str {
331
343
}
332
344
}
333
345
334
- enum Stream {
335
- Stdout ,
336
- Stderr ,
337
- }
338
-
339
- #[ cfg( unix) ]
340
- fn isatty ( stream : Stream ) -> bool {
341
- let fd = match stream {
342
- Stream :: Stdout => libc:: STDOUT_FILENO ,
343
- Stream :: Stderr => libc:: STDERR_FILENO ,
344
- } ;
345
- unsafe { libc:: isatty ( fd) != 0 }
346
- }
347
-
348
- #[ cfg( windows) ]
349
- fn isatty ( stream : Stream ) -> bool {
350
- use winapi:: um:: consoleapi:: GetConsoleMode ;
351
- use winapi:: um:: handleapi:: INVALID_HANDLE_VALUE ;
352
- use winapi:: um:: processenv:: GetStdHandle ;
353
- use winapi:: um:: winbase:: { STD_OUTPUT_HANDLE , STD_ERROR_HANDLE } ;
354
-
355
- let handle = match stream {
356
- Stream :: Stdout => STD_OUTPUT_HANDLE ,
357
- Stream :: Stderr => STD_ERROR_HANDLE ,
358
- } ;
359
-
360
- unsafe {
361
- let handle = GetStdHandle ( handle) ;
362
- if handle == INVALID_HANDLE_VALUE {
363
- return false ;
364
- }
365
-
366
- let mut mode: u32 = 0 ;
367
- GetConsoleMode ( handle, & mut mode) != 0
346
+ #[ cfg( test) ]
347
+ mod tests {
348
+ use super :: * ;
349
+
350
+ #[ test]
351
+ #[ ignore = "manual test" ]
352
+ fn test_log_pretty_print ( ) {
353
+ env:: set_var ( "STACKS_LOG_PP" , "1" ) ;
354
+ let logger: Logger = make_logger ( ) ;
355
+ slog:: slog_info!( logger, "Info test" ) ; //equivalent to info!(..)
356
+ slog:: slog_warn!( logger, "Warn test" ) ; //equivalent to warn!(..)
357
+ slog:: slog_error!( logger, "Erro test" ) ; //equivalent to erro!(..)
368
358
}
369
359
}
0 commit comments