However, during the initialization of metric logs in the init_core_components function, a new thread is spawned to perform the task, which will use the default value of the global config:
// `init_core_components` init core components with global config
#[inline]
fn init_core_components() -> Result<()> {
if config::metric_log_flush_interval_sec() > 0 {
#[cfg(feature = "metric_log")]
metric::init_task();
}
...
}
The global config in the sentinel-core module is defined as a thread-local variable:
However, during the initialization of metric logs in the init_core_components function, a new thread is spawned to perform the task, which will use the default value of the global config:
Functions like remove_deprecated_files and roll_file_size_exceeded in the metric log writer module will not behave as expected when users define a custom config.