diff --git a/Cargo.lock b/Cargo.lock index c72a64fb9..bafb81479 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -132,6 +132,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" +[[package]] +name = "android_log-sys" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85965b6739a430150bdd138e2374a98af0c3ee0d030b3bb7fc3bddff58d0102e" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -9024,6 +9030,7 @@ dependencies = [ "tokio-util", "tower-service", "tracing", + "tracing-android", "tracing-appender", "tracing-subscriber", "tracing-test", @@ -11239,6 +11246,17 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "tracing-android" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12612be8f868a09c0ceae7113ff26afe79d81a24473a393cb9120ece162e86c0" +dependencies = [ + "android_log-sys", + "tracing", + "tracing-subscriber", +] + [[package]] name = "tracing-appender" version = "0.2.3" diff --git a/core/Cargo.toml b/core/Cargo.toml index 7f325049f..3d411853e 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -159,6 +159,9 @@ icrate = { version = "0.1.2", features = [ "Foundation_NSNumber", ] } +[target.'cfg(target_os = "android")'.dependencies] +tracing-android = "0.2.0" + [dev-dependencies] # Workspace dependencies globset = { workspace = true } diff --git a/core/src/lib.rs b/core/src/lib.rs index 48f131116..273dc9279 100644 --- a/core/src/lib.rs +++ b/core/src/lib.rs @@ -31,7 +31,7 @@ use tracing_appender::{ non_blocking::{NonBlocking, WorkerGuard}, rolling::{RollingFileAppender, Rotation}, }; -use tracing_subscriber::{filter::FromEnvError, prelude::*, EnvFilter}; +use tracing_subscriber::{filter::FromEnvError, prelude::*, registry, EnvFilter}; pub mod api; mod cloud; @@ -254,12 +254,15 @@ impl Node { ); } - tracing_subscriber::registry() + let registry = registry(); + + let registry = registry .with( tracing_subscriber::fmt::layer() .with_file(true) .with_line_number(true) .with_ansi(false) + .with_target(true) .with_writer(logfile) .with_filter(EnvFilter::from_default_env()), ) @@ -269,8 +272,12 @@ impl Node { .with_line_number(true) .with_writer(std::io::stdout) .with_filter(EnvFilter::from_default_env()), - ) - .init(); + ); + + #[cfg(target_os = "android")] + let registry = registry.with(tracing_android::layer("com.spacedrive.app").unwrap()); + + registry.init(); std::panic::set_hook(Box::new(move |panic| { use std::backtrace::{Backtrace, BacktraceStatus};