in src/module.rs [257:304]
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 can'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 filter = EnvFilter::new(format!(
"info,skywalking_agent={log_level},skywalking_php_worker={log_level}"
));
let subscriber = FmtSubscriber::builder()
.with_env_filter(filter)
.with_ansi(false)
.with_writer(file)
.with_timer(
OffsetTime::local_rfc_3339()
.unwrap_or_else(|_| OffsetTime::new(time::UtcOffset::UTC, Rfc3339)),
)
.finish();
tracing::subscriber::set_global_default(subscriber)?;
Ok(())
}