Frida-android-native/src/simple_log.rs
alterdekim efa814c70a
Some checks failed
gitea/Frida-android-native/pipeline/head There was a failure building this commit
modified: src/client.rs
modified:   src/main.rs
	modified:   src/mobile.rs
	modified:   src/simple_log.rs
2024-10-07 19:02:24 +03:00

43 lines
1.2 KiB
Rust

use crossbeam_channel::unbounded;
use crossbeam_channel::{ Sender, Receiver };
use std::sync::LazyLock;
#[derive(Debug, Clone, PartialEq, Eq, Default)]
pub struct SimpleLogger {
env: Option<&JNIEnv>
}
impl log::Log for SimpleLogger {
fn enabled(&self, metadata: &log::Metadata) -> bool {
metadata.level() <= log::Level::Trace
}
fn log(&self, record: &log::Record) {
if self.enabled(record.metadata()) {
let current_crate_name = env!("CARGO_CRATE_NAME");
if record.module_path().unwrap_or("").starts_with(current_crate_name) {
self.do_log(record);
}
}
}
fn flush(&self) {}
}
impl SimpleLogger {
fn do_log(&self, record: &log::Record) {
let timestamp: chrono::DateTime<chrono::Local> = chrono::Local::now();
let msg = format!(
"[{} {:<5} {}] - {}",
timestamp.format("%Y-%m-%d %H:%M:%S"),
record.level(),
record.module_path().unwrap_or(""),
record.args()
);
FridaLib::traceFromNative(self.env, msg);
}
fn set_env(&self, env: &JNIEnv) {
self.env = Some(env);
}
}