1
1
/// Utility function to provide typed checking of the mask's field state.
2
2
#[ inline( always) ]
3
- fn check_mask ( mask : DebugMask , log_level : usize ) -> bool {
3
+ pub fn check_mask ( mask : DebugMask , log_level : usize ) -> bool {
4
4
let mask_bits: u32 = mask. into ( ) ;
5
5
if log_level & mask_bits as usize == 0 {
6
6
return false ;
7
7
}
8
8
true
9
9
}
10
10
11
+ /*
11
12
/// Internal macro, provided to reduce code duplication.
12
13
///
13
14
/// Expects an ngx_log_t and message format template.
@@ -21,6 +22,7 @@ macro_rules! _ngx_log_debug_internal {
21
22
}
22
23
}
23
24
}
25
+ */
24
26
25
27
/// Write to logger at a specified level.
26
28
///
@@ -31,7 +33,13 @@ macro_rules! ngx_log_debug {
31
33
( $log: expr, $( $arg: tt) * ) => {
32
34
let log_level = unsafe { ( * $log) . log_level } ;
33
35
if log_level != 0 {
34
- $crate:: _ngx_log_debug_internal!( $log, $( $arg) * ) ;
36
+ // $crate::_ngx_log_debug_internal!($log, $($arg)*);
37
+ let level = $crate:: ffi:: NGX_LOG_DEBUG as $crate:: ffi:: ngx_uint_t;
38
+ let fmt = :: std:: ffi:: CString :: new( "%s" ) . unwrap( ) ;
39
+ let c_message = :: std:: ffi:: CString :: new( format!( $( $arg) * ) ) . unwrap( ) ;
40
+ unsafe {
41
+ $crate:: ffi:: ngx_log_error_core( level, $log, 0 , fmt. as_ptr( ) , c_message. as_ptr( ) ) ;
42
+ }
35
43
}
36
44
}
37
45
}
@@ -110,44 +118,86 @@ impl From<DebugMask> for u32 {
110
118
macro_rules! ngx_log_debug_mask {
111
119
( DebugMask :: Core , $log: expr, $( $arg: tt) * ) => ( {
112
120
let log_level = unsafe { ( * $log) . log_level } ;
113
- if check_mask( DebugMask :: Core , log_level) {
114
- $crate:: _ngx_log_debug_internal!( log, $( $arg: tt) * ) ;
121
+ if $crate:: log:: check_mask( DebugMask :: Core , log_level) {
122
+ //$crate::_ngx_log_debug_internal!(log, $($arg:tt)*);
123
+ let level = $crate:: ffi:: NGX_LOG_DEBUG as $crate:: ffi:: ngx_uint_t;
124
+ let fmt = :: std:: ffi:: CString :: new( "%s" ) . unwrap( ) ;
125
+ let c_message = :: std:: ffi:: CString :: new( format!( $( $arg) * ) ) . unwrap( ) ;
126
+ unsafe {
127
+ $crate:: ffi:: ngx_log_error_core( level, $log, 0 , fmt. as_ptr( ) , c_message. as_ptr( ) ) ;
128
+ }
115
129
}
116
130
} ) ;
117
131
( DebugMask :: Alloc , $log: expr, $( $arg: tt) * ) => ( {
118
132
let log_level = unsafe { ( * $log) . log_level } ;
119
- if check_mask( DebugMask :: Alloc , log_level) {
120
- $crate:: _ngx_log_debug_internal!( log, $( $arg: tt) * ) ;
133
+ if $crate:: log:: check_mask( DebugMask :: Alloc , log_level) {
134
+ //$crate::_ngx_log_debug_internal!(log, $($arg:tt)*);
135
+ let level = $crate:: ffi:: NGX_LOG_DEBUG as $crate:: ffi:: ngx_uint_t;
136
+ let fmt = :: std:: ffi:: CString :: new( "%s" ) . unwrap( ) ;
137
+ let c_message = :: std:: ffi:: CString :: new( format!( $( $arg) * ) ) . unwrap( ) ;
138
+ unsafe {
139
+ $crate:: ffi:: ngx_log_error_core( level, $log, 0 , fmt. as_ptr( ) , c_message. as_ptr( ) ) ;
140
+ }
121
141
}
122
142
} ) ;
123
143
( DebugMask :: Mutex , $log: expr, $( $arg: tt) * ) => ( {
124
144
let log_level = unsafe { ( * $log) . log_level } ;
125
- if check_mask( DebugMask :: Mutex , log_level) {
126
- $crate:: _ngx_log_debug_internal!( log, $( $arg: tt) * ) ;
145
+ if $crate:: log:: check_mask( DebugMask :: Mutex , log_level) {
146
+ //$crate::_ngx_log_debug_internal!(log, $($arg:tt)*);
147
+ let level = $crate:: ffi:: NGX_LOG_DEBUG as $crate:: ffi:: ngx_uint_t;
148
+ let fmt = :: std:: ffi:: CString :: new( "%s" ) . unwrap( ) ;
149
+ let c_message = :: std:: ffi:: CString :: new( format!( $( $arg) * ) ) . unwrap( ) ;
150
+ unsafe {
151
+ $crate:: ffi:: ngx_log_error_core( level, $log, 0 , fmt. as_ptr( ) , c_message. as_ptr( ) ) ;
152
+ }
127
153
}
128
154
} ) ;
129
155
( DebugMask :: Event , $log: expr, $( $arg: tt) * ) => ( {
130
156
let log_level = unsafe { ( * $log) . log_level } ;
131
- if check_mask( DebugMask :: Event , log_level) {
132
- $crate:: _ngx_log_debug_internal!( log, $( $arg: tt) * ) ;
157
+ if $crate:: log:: check_mask( DebugMask :: Event , log_level) {
158
+ //$crate::_ngx_log_debug_internal!(log, $($arg:tt)*);
159
+ let level = $crate:: ffi:: NGX_LOG_DEBUG as $crate:: ffi:: ngx_uint_t;
160
+ let fmt = :: std:: ffi:: CString :: new( "%s" ) . unwrap( ) ;
161
+ let c_message = :: std:: ffi:: CString :: new( format!( $( $arg) * ) ) . unwrap( ) ;
162
+ unsafe {
163
+ $crate:: ffi:: ngx_log_error_core( level, $log, 0 , fmt. as_ptr( ) , c_message. as_ptr( ) ) ;
164
+ }
133
165
}
134
166
} ) ;
135
167
( DebugMask :: Http , $log: expr, $( $arg: tt) * ) => ( {
136
168
let log_level = unsafe { ( * $log) . log_level } ;
137
- if check_mask( DebugMask :: Http , log_level) {
138
- $crate:: _ngx_log_debug_internal!( log, $( $arg: tt) * ) ;
169
+ if $crate:: log:: check_mask( DebugMask :: Http , log_level) {
170
+ //$crate::_ngx_log_debug_internal!(log, $($arg:tt)*);
171
+ let level = $crate:: ffi:: NGX_LOG_DEBUG as $crate:: ffi:: ngx_uint_t;
172
+ let fmt = :: std:: ffi:: CString :: new( "%s" ) . unwrap( ) ;
173
+ let c_message = :: std:: ffi:: CString :: new( format!( $( $arg) * ) ) . unwrap( ) ;
174
+ unsafe {
175
+ $crate:: ffi:: ngx_log_error_core( level, $log, 0 , fmt. as_ptr( ) , c_message. as_ptr( ) ) ;
176
+ }
139
177
}
140
178
} ) ;
141
179
( DebugMask :: Mail , $log: expr, $( $arg: tt) * ) => ( {
142
180
let log_level = unsafe { ( * $log) . log_level } ;
143
- if check_mask( DebugMask :: Mail , log_level) {
144
- $crate:: _ngx_log_debug_internal!( log, $( $arg: tt) * ) ;
181
+ if $crate:: log:: check_mask( DebugMask :: Mail , log_level) {
182
+ //$crate::_ngx_log_debug_internal!(log, $($arg:tt)*);
183
+ let level = $crate:: ffi:: NGX_LOG_DEBUG as $crate:: ffi:: ngx_uint_t;
184
+ let fmt = :: std:: ffi:: CString :: new( "%s" ) . unwrap( ) ;
185
+ let c_message = :: std:: ffi:: CString :: new( format!( $( $arg) * ) ) . unwrap( ) ;
186
+ unsafe {
187
+ $crate:: ffi:: ngx_log_error_core( level, $log, 0 , fmt. as_ptr( ) , c_message. as_ptr( ) ) ;
188
+ }
145
189
}
146
190
} ) ;
147
191
( DebugMask :: Stream , $log: expr, $( $arg: tt) * ) => ( {
148
192
let log_level = unsafe { ( * $log) . log_level } ;
149
- if check_mask( DebugMask :: Stream , log_level) {
150
- $crate:: _ngx_log_debug_internal!( log, $( $arg: tt) * ) ;
193
+ if $crate:: log:: check_mask( DebugMask :: Stream , log_level) {
194
+ //$crate::_ngx_log_debug_internal!(log, $($arg:tt)*);
195
+ let level = $crate:: ffi:: NGX_LOG_DEBUG as $crate:: ffi:: ngx_uint_t;
196
+ let fmt = :: std:: ffi:: CString :: new( "%s" ) . unwrap( ) ;
197
+ let c_message = :: std:: ffi:: CString :: new( format!( $( $arg) * ) ) . unwrap( ) ;
198
+ unsafe {
199
+ $crate:: ffi:: ngx_log_error_core( level, $log, 0 , fmt. as_ptr( ) , c_message. as_ptr( ) ) ;
200
+ }
151
201
}
152
202
} ) ;
153
203
}
0 commit comments