@@ -118,32 +118,47 @@ pub enum LogId {
118
118
119
119
#[ cfg( target_os = "android" ) ]
120
120
impl LogId {
121
- fn to_native ( log_id : Option < Self > ) -> log_ffi:: log_id_t {
121
+ const fn to_native ( log_id : Option < Self > ) -> Option < log_ffi:: log_id_t > {
122
122
match log_id {
123
- Some ( Self :: Main ) => log_ffi:: log_id_t:: MAIN ,
124
- Some ( Self :: Radio ) => log_ffi:: log_id_t:: RADIO ,
125
- Some ( Self :: Events ) => log_ffi:: log_id_t:: EVENTS ,
126
- Some ( Self :: System ) => log_ffi:: log_id_t:: SYSTEM ,
127
- Some ( Self :: Crash ) => log_ffi:: log_id_t:: CRASH ,
128
- Some ( Self :: Kernel ) => log_ffi:: log_id_t:: KERNEL ,
129
- Some ( Self :: Security ) => log_ffi:: log_id_t:: SECURITY ,
130
- Some ( Self :: Stats ) => log_ffi:: log_id_t:: STATS ,
131
- None => log_ffi :: log_id_t :: DEFAULT ,
123
+ Some ( Self :: Main ) => Some ( log_ffi:: log_id_t:: MAIN ) ,
124
+ Some ( Self :: Radio ) => Some ( log_ffi:: log_id_t:: RADIO ) ,
125
+ Some ( Self :: Events ) => Some ( log_ffi:: log_id_t:: EVENTS ) ,
126
+ Some ( Self :: System ) => Some ( log_ffi:: log_id_t:: SYSTEM ) ,
127
+ Some ( Self :: Crash ) => Some ( log_ffi:: log_id_t:: CRASH ) ,
128
+ Some ( Self :: Kernel ) => Some ( log_ffi:: log_id_t:: KERNEL ) ,
129
+ Some ( Self :: Security ) => Some ( log_ffi:: log_id_t:: SECURITY ) ,
130
+ Some ( Self :: Stats ) => Some ( log_ffi:: log_id_t:: STATS ) ,
131
+ None => None ,
132
132
}
133
133
}
134
134
}
135
135
136
136
/// Outputs log to Android system.
137
137
#[ cfg( target_os = "android" ) ]
138
- fn android_log ( buf_id : log_ffi:: log_id_t , prio : log_ffi:: LogPriority , tag : & CStr , msg : & CStr ) {
139
- unsafe {
140
- log_ffi:: __android_log_buf_write (
141
- buf_id as log_ffi:: c_int ,
142
- prio as log_ffi:: c_int ,
143
- tag. as_ptr ( ) as * const log_ffi:: c_char ,
144
- msg. as_ptr ( ) as * const log_ffi:: c_char ,
145
- ) ;
146
- } ;
138
+ fn android_log (
139
+ buf_id : Option < log_ffi:: log_id_t > ,
140
+ prio : log_ffi:: LogPriority ,
141
+ tag : & CStr ,
142
+ msg : & CStr ,
143
+ ) {
144
+ if let Some ( buf_id) = buf_id {
145
+ unsafe {
146
+ log_ffi:: __android_log_buf_write (
147
+ buf_id as log_ffi:: c_int ,
148
+ prio as log_ffi:: c_int ,
149
+ tag. as_ptr ( ) as * const log_ffi:: c_char ,
150
+ msg. as_ptr ( ) as * const log_ffi:: c_char ,
151
+ ) ;
152
+ } ;
153
+ } else {
154
+ unsafe {
155
+ log_ffi:: __android_log_write (
156
+ prio as log_ffi:: c_int ,
157
+ tag. as_ptr ( ) as * const log_ffi:: c_char ,
158
+ msg. as_ptr ( ) as * const log_ffi:: c_char ,
159
+ ) ;
160
+ } ;
161
+ }
147
162
}
148
163
149
164
/// Dummy output placeholder for tests.
@@ -337,7 +352,7 @@ pub struct PlatformLogWriter<'a> {
337
352
#[ cfg( not( target_os = "android" ) ) ]
338
353
priority : Level ,
339
354
#[ cfg( target_os = "android" ) ]
340
- buf_id : log_ffi:: log_id_t ,
355
+ buf_id : Option < log_ffi:: log_id_t > ,
341
356
#[ cfg( not( target_os = "android" ) ) ]
342
357
buf_id : Option < LogId > ,
343
358
len : usize ,
0 commit comments