Skip to content

Commit b98be74

Browse files
committed
Derive/implement Debug for Config and AndroidLogger
Allows these structs to be printed, useful for supposedly the `log4rs` crate which requires this to be implemented on `AndroidLogger`.
1 parent d51b7ff commit b98be74

File tree

1 file changed

+21
-11
lines changed

1 file changed

+21
-11
lines changed

src/lib.rs

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ fn android_log(
160160
fn android_log(_buf_id: Option<LogId>, _priority: Level, _tag: &CStr, _msg: &CStr) {}
161161

162162
/// Underlying android logger backend
163+
#[derive(Debug, Default)]
163164
pub struct AndroidLogger {
164165
config: OnceLock<Config>,
165166
}
@@ -182,15 +183,6 @@ static ANDROID_LOGGER: OnceLock<AndroidLogger> = OnceLock::new();
182183
const LOGGING_TAG_MAX_LEN: usize = 23;
183184
const LOGGING_MSG_MAX_LEN: usize = 4000;
184185

185-
impl Default for AndroidLogger {
186-
/// Create a new logger with default config
187-
fn default() -> AndroidLogger {
188-
AndroidLogger {
189-
config: OnceLock::from(Config::default()),
190-
}
191-
}
192-
}
193-
194186
impl Log for AndroidLogger {
195187
fn enabled(&self, metadata: &Metadata) -> bool {
196188
let config = self.config();
@@ -226,7 +218,7 @@ impl Log for AndroidLogger {
226218
// truncate the tag here to fit into LOGGING_TAG_MAX_LEN
227219
self.fill_tag_bytes(&mut tag_bytes, tag);
228220
// use stack array as C string
229-
let tag: &CStr = unsafe { CStr::from_ptr(mem::transmute(tag_bytes.as_ptr())) };
221+
let tag = unsafe { CStr::from_ptr(mem::transmute(tag_bytes.as_ptr())) };
230222

231223
// message must not exceed LOGGING_MSG_MAX_LEN
232224
// therefore split log message into multiple log calls
@@ -279,6 +271,24 @@ pub struct Config {
279271
custom_format: Option<FormatFn>,
280272
}
281273

274+
impl fmt::Debug for Config {
275+
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
276+
f.debug_struct("Config")
277+
.field("log_level", &self.log_level)
278+
.field("buf_id", &self.buf_id)
279+
.field("filter", &self.filter)
280+
.field("tag", &self.tag)
281+
.field(
282+
"custom_format",
283+
match &self.custom_format {
284+
Some(_) => &"Some(_)",
285+
None => &"None",
286+
},
287+
)
288+
.finish()
289+
}
290+
}
291+
282292
impl Config {
283293
/// Changes the maximum log level.
284294
///
@@ -449,7 +459,7 @@ impl<'a> PlatformLogWriter<'a> {
449459
self.buffer.get_unchecked_mut(len)
450460
});
451461

452-
let msg: &CStr = unsafe { CStr::from_ptr(self.buffer.as_ptr().cast()) };
462+
let msg = unsafe { CStr::from_ptr(self.buffer.as_ptr().cast()) };
453463
android_log(self.buf_id, self.priority, self.tag, msg);
454464

455465
unsafe { *self.buffer.get_unchecked_mut(len) = last_byte };

0 commit comments

Comments
 (0)