Some checks failed
gitea/Frida-android-native/pipeline/head There was a failure building this commit
modified: src/main.rs modified: src/mobile.rs modified: src/simple_log.rs
43 lines
1.2 KiB
Rust
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);
|
|
}
|
|
} |