1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
mod test_utils;
#[cfg(feature = "json")]
use flexi_logger::{json_format, FileSpec, Logger};
#[cfg(feature = "json")]
use log::*;
#[cfg(feature = "json")]
#[test]
fn test_json() {
let logger = Logger::try_with_str("trace")
.unwrap()
.log_to_file(FileSpec::default().directory(self::test_utils::dir()))
.format(json_format)
.start()
.unwrap_or_else(|e| panic!("Logger initialization failed with {e}"));
let duration = std::time::Duration::from_millis(200);
if cfg!(feature = "kv") {
#[cfg(feature = "kv")]
error!(
a = 1,
b = "2 beer or not 2 beer";
"This is an error message {} {:?}",
5,
duration
);
} else {
error!("This is an error message {} {:?}", 5, duration);
}
warn!("This is a warning message {} {:?}", 4, duration);
info!("This is an info message {} {:?}", 2, duration);
if cfg!(feature = "kv") {
logger.validate_logs(&[
(
"{\"level\":\"ERROR\",\"timestamp\"",
"\"module_path\":\"test_json\"",
"\"line\":20,\"kv\":{\"a\":1,\"b\":\"2 beer or not 2 beer\"},\
\"text\":\"This is an error message 5 200ms\"}",
),
(
"{\"level\":\"WARN\",\"timestamp\"",
"\"module_path\":\"test_json\"",
"\"line\":30,\"text\":\"This is a warning message 4 200ms\"",
),
(
"{\"level\":\"INFO\",\"timestamp\"",
"\"module_path\":\"test_json\"",
"\"line\":31,\"text\":\"This is an info message 2 200ms\"",
),
]);
} else {
logger.validate_logs(&[
(
"{\"level\":\"ERROR\",\"timestamp\"",
"\"module_path\":\"test_json\"",
"\"line\":28,\"text\":\"This is an error message 5 200ms\"",
),
(
"{\"level\":\"WARN\",\"timestamp\"",
"\"module_path\":\"test_json\"",
"\"line\":30,\"text\":\"This is a warning message 4 200ms\"",
),
(
"{\"level\":\"INFO\",\"timestamp\"",
"\"module_path\":\"test_json\"",
"\"line\":31,\"text\":\"This is an info message 2 200ms\"",
),
]);
}
}
|