generate update 2
This commit is contained in:
+36
-12
@@ -1,17 +1,41 @@
|
||||
use tracing_subscriber::{fmt, prelude::*, EnvFilter};
|
||||
use tracing_log::LogTracer;
|
||||
use tracing_subscriber::{fmt, prelude::*, EnvFilter, Registry};
|
||||
|
||||
pub fn logger_init() {
|
||||
let fmt_layer = fmt::layer()
|
||||
.with_target(true) // Показывать, из какого модуля пришел лог
|
||||
.with_thread_ids(false)
|
||||
.with_line_number(true); // Показывать строку кода (очень полезно для дебага)
|
||||
eprintln!("--- [DEBUG] logger_init start ---");
|
||||
let _ = LogTracer::init();
|
||||
|
||||
let filter_layer = EnvFilter::try_from_default_env()
|
||||
.or_else(|_| EnvFilter::try_new("trace")) // По умолчанию уровень info
|
||||
.unwrap();
|
||||
// 4. Фильтр (создаем его один раз для всех)
|
||||
let filter_layer =
|
||||
EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("trace"));
|
||||
|
||||
tracing_subscriber::registry()
|
||||
.with(filter_layer)
|
||||
.with(fmt_layer)
|
||||
.init();
|
||||
// Инициализируем базовый реестр
|
||||
let registry = tracing_subscriber::registry().with(filter_layer);
|
||||
|
||||
// 2 & 5. Собираем реестр с учетом платформы
|
||||
#[cfg(target_os = "android")]
|
||||
{
|
||||
// Слой для Android Logcat
|
||||
let android_layer =
|
||||
tracing_android::layer("NETRUNNER_RUST").expect("Failed to create android layer");
|
||||
|
||||
let subscriber = registry.with(android_layer);
|
||||
if let Err(e) = subscriber.try_init() {
|
||||
eprintln!("Subscriber already set: {:?}", e);
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(not(target_os = "android"))]
|
||||
{
|
||||
// 3. Слой для консоли (только для Linux/десктопа)
|
||||
let fmt_layer = fmt::layer()
|
||||
.with_target(true)
|
||||
.with_line_number(true)
|
||||
.with_ansi(false);
|
||||
|
||||
let subscriber = registry.with(fmt_layer);
|
||||
if let Err(e) = subscriber.try_init() {
|
||||
eprintln!("Subscriber already set: {:?}", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user