-
Couldn't load subscription status.
- Fork 97
Open
Labels
Description
When using isahc https://crates.io/crates/isahc log records are missing location information when logging them through slog. The information exists when logging through env_logger https://crates.io/crates/env_logger .
Cargo.toml:
[package] name = "temp" version = "0.1.0" edition = "2018" [dependencies] env_logger = "0.7.1" isahc = "0.9.3" log = "0.4.8" slog = "2.5.2" slog-scope = "4.3.0" slog-stdlog = "4.0.0"main.rs:
pub struct CustomFormatter; impl slog::Drain for CustomFormatter { type Ok = (); type Err = (); fn log( &self, record: &slog::Record, _values: &slog::OwnedKVList, ) -> std::result::Result<Self::Ok, Self::Err> { println!( "{} {} {} {}: {}", record.level(), record.module(), record.file(), record.line(), record.msg() ); Ok(()) } } fn env_logger_format( formatter: &mut env_logger::fmt::Formatter, record: &log::Record, ) -> std::io::Result<()> { use std::io::Write as _; writeln!( formatter, "{} {} {} {}: {}", record.level(), record.module_path().unwrap(), record.file().unwrap(), record.line().unwrap(), record.args() ) .unwrap(); Ok(()) } fn setup_env_logger() { env_logger::Builder::new() .filter_level(log::LevelFilter::Trace) .format(env_logger_format) .init(); } fn setup_slog_logger() -> slog_scope::GlobalLoggerGuard { use slog::Drain as _; let logger = slog::Logger::root(CustomFormatter {}.fuse(), slog::o!()); let guard = slog_scope::set_global_logger(logger); slog_stdlog::init().unwrap(); guard } fn main() { // setup_env_logger(); let _guard = setup_slog_logger(); log::info!("start"); isahc::HttpClient::new().unwrap(); log::info!("end"); }cargo run:
INFO temp src/main.rs 32: start INFO <unknown> <unknown> 505: new INFO <unknown> <unknown> 505: -> new INFO <unknown> <unknown> 372: build ... Change which logger is enabled:
setup_env_logger(); // let _guard = setup_slog_logger();cargo run:
INFO temp src/main.rs 58: start INFO isahc::client /home/u/.cargo/registry/src/github.com-1ecc6299db9ec823/isahc-0.9.3/src/client.rs 505: new INFO isahc::client /home/u/.cargo/registry/src/github.com-1ecc6299db9ec823/isahc-0.9.3/src/client.rs 505: -> new INFO isahc::client /home/u/.cargo/registry/src/github.com-1ecc6299db9ec823/isahc-0.9.3/src/client.rs 372: build ... I am not sure which crate is at fault but slog is most likely as it works with env_logger.