in src/module.rs [205:244]
fn try_init_logger() -> anyhow::Result<()> {
let log_level = ini_get::<Option<&CStr>>(SKYWALKING_AGENT_LOG_LEVEL)
.and_then(|s| s.to_str().ok())
.unwrap_or("OFF");
let log_level = log_level.trim();
let log_level = LevelFilter::from_str(log_level)?;
if log_level == LevelFilter::OFF {
return Ok(());
}
let log_file = ini_get::<Option<&CStr>>(SKYWALKING_AGENT_LOG_FILE)
.and_then(|s| s.to_str().ok())
.unwrap_or_default();
let log_file = log_file.trim();
if log_file.is_empty() {
bail!("log file cant't be empty when log enabled");
}
let path = Path::new(log_file);
if let Some(parent) = path.parent() {
fs::create_dir_all(parent)?;
}
let mut open_options = OpenOptions::new();
open_options.append(true).create(true);
let file = open_options.open(path)?;
let subscriber = FmtSubscriber::builder()
.with_max_level(log_level)
.with_ansi(false)
.with_writer(file)
.finish();
tracing::subscriber::set_global_default(subscriber)?;
Ok(())
}