From 2e829956f411bc59f119b59846b7368ae242b199 Mon Sep 17 00:00:00 2001 From: 21pages Date: Tue, 17 Oct 2023 18:49:34 +0800 Subject: [PATCH] android write rust log to ExternalStorage/RustDesk/Logs Signed-off-by: 21pages --- libs/hbb_common/src/config.rs | 11 +++++++++-- src/flutter_ffi.rs | 13 +++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/libs/hbb_common/src/config.rs b/libs/hbb_common/src/config.rs index 82867ad73..6f7bebdc0 100644 --- a/libs/hbb_common/src/config.rs +++ b/libs/hbb_common/src/config.rs @@ -341,8 +341,8 @@ impl Default for PeerConfig { view_only: Default::default(), reverse_mouse_wheel: Self::default_reverse_mouse_wheel(), displays_as_individual_windows: Self::default_displays_as_individual_windows(), - use_all_my_displays_for_the_remote_session: Self::default_use_all_my_displays_for_the_remote_session( - ), + use_all_my_displays_for_the_remote_session: + Self::default_use_all_my_displays_for_the_remote_session(), custom_resolutions: Default::default(), options: Self::default_options(), ui_flutter: Default::default(), @@ -623,6 +623,13 @@ impl Config { std::fs::create_dir_all(&path).ok(); return path; } + #[cfg(target_os = "android")] + { + let mut path = Self::get_home(); + path.push(format!("{}/Logs", *APP_NAME.read().unwrap())); + std::fs::create_dir_all(&path).ok(); + return path; + } if let Some(path) = Self::path("").parent() { let mut path: PathBuf = path.into(); path.push("log"); diff --git a/src/flutter_ffi.rs b/src/flutter_ffi.rs index fda3247b9..14cc32978 100644 --- a/src/flutter_ffi.rs +++ b/src/flutter_ffi.rs @@ -39,11 +39,15 @@ fn initialize(app_dir: &str) { *config::APP_DIR.write().unwrap() = app_dir.to_owned(); #[cfg(target_os = "android")] { + // flexi_logger can't work when android_logger initialized. + #[cfg(debug_assertions)] android_logger::init_once( android_logger::Config::default() .with_max_level(log::LevelFilter::Debug) // limit log level .with_tag("ffi"), // logs will show under mytag tag ); + #[cfg(not(debug_assertions))] + hbb_common::init_log(false, ""); #[cfg(feature = "mediacodec")] scrap::mediacodec::check_mediacodec(); crate::common::test_rendezvous_server(); @@ -359,13 +363,18 @@ pub fn session_get_use_all_my_displays_for_the_remote_session( session_id: SessionID, ) -> SyncReturn> { if let Some(session) = sessions::get_session_by_session_id(&session_id) { - SyncReturn(Some(session.get_use_all_my_displays_for_the_remote_session())) + SyncReturn(Some( + session.get_use_all_my_displays_for_the_remote_session(), + )) } else { SyncReturn(None) } } -pub fn session_set_use_all_my_displays_for_the_remote_session(session_id: SessionID, value: String) { +pub fn session_set_use_all_my_displays_for_the_remote_session( + session_id: SessionID, + value: String, +) { if let Some(session) = sessions::get_session_by_session_id(&session_id) { session.save_use_all_my_displays_for_the_remote_session(value); }