From d3b88ec4b6ec2457b8ebc7ae0ea8e1d83aa14841 Mon Sep 17 00:00:00 2001 From: Bryan Oltman Date: Tue, 6 Feb 2024 16:52:04 -0500 Subject: [PATCH] fix: us OSLog framework for logging on iOS (#120) * fix: us OSLog framework for logging on iOS * cleanup --- library/Cargo.toml | 4 ++-- library/src/logging.rs | 11 +++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/library/Cargo.toml b/library/Cargo.toml index 241e61a..c178ad5 100644 --- a/library/Cargo.toml +++ b/library/Cargo.toml @@ -62,8 +62,8 @@ log-panics = { version = "2", features = ["with-backtrace"] } [target.'cfg(target_os = "ios")'.dependencies] # Send panics to syslog (instead of stderr). log-panics = { version = "2", features = ["with-backtrace"] } -# Use stderr for logging on iOS. -simple-logging = "2.0.2" +# Support for logging on iOS (https://developer.apple.com/documentation/oslog) +oslog = "0.2.0" [dev-dependencies] mockall = "0.11.4" diff --git a/library/src/logging.rs b/library/src/logging.rs index 1a81508..81ab745 100644 --- a/library/src/logging.rs +++ b/library/src/logging.rs @@ -13,10 +13,13 @@ pub fn init_logging() { #[cfg(target_os = "ios")] pub fn init_logging() { - // I could not figure out how to get fancier logging set up on iOS - // but logging to stderr seems to work. - simple_logging::log_to(std::io::stderr(), log::LevelFilter::Info); - debug!("Logging initialized"); + let init_result = oslog::OsLogger::new("dev.shorebird") + .level_filter(log::LevelFilter::Info) + .init(); + match init_result { + Ok(_) => debug!("Logging initialized"), + Err(e) => error!("Failed to initialize logging: {}", e), + } } #[cfg(all(not(target_os = "android"), not(target_os = "ios")))]