@@ -10,6 +10,7 @@ macro_rules! all_log_macros {
10
10
} ) ;
11
11
}
12
12
13
+ // Not `Copy`
13
14
struct Logger ;
14
15
15
16
impl Log for Logger {
@@ -22,15 +23,20 @@ impl Log for Logger {
22
23
23
24
#[ test]
24
25
fn no_args ( ) {
26
+ let logger = Logger ;
27
+
25
28
for lvl in log:: Level :: iter ( ) {
26
29
log ! ( lvl, "hello" ) ;
27
30
log ! ( lvl, "hello" , ) ;
28
31
29
32
log ! ( target: "my_target" , lvl, "hello" ) ;
30
33
log ! ( target: "my_target" , lvl, "hello" , ) ;
31
34
32
- log ! ( lvl, "hello" ) ;
33
- log ! ( lvl, "hello" , ) ;
35
+ log ! ( logger: logger, lvl, "hello" ) ;
36
+ log ! ( logger: logger, lvl, "hello" , ) ;
37
+
38
+ log ! ( logger: logger, target: "my_target" , lvl, "hello" ) ;
39
+ log ! ( logger: logger, target: "my_target" , lvl, "hello" , ) ;
34
40
}
35
41
36
42
all_log_macros ! ( "hello" ) ;
@@ -39,10 +45,11 @@ fn no_args() {
39
45
all_log_macros ! ( target: "my_target" , "hello" ) ;
40
46
all_log_macros ! ( target: "my_target" , "hello" , ) ;
41
47
42
- all_log_macros ! ( logger: Logger , "hello" ) ;
43
- all_log_macros ! ( logger: Logger , "hello" , ) ;
44
- all_log_macros ! ( logger: Logger , target: "my_target" , "hello" ) ;
45
- all_log_macros ! ( logger: Logger , target: "my_target" , "hello" , ) ;
48
+ all_log_macros ! ( logger: logger, "hello" ) ;
49
+ all_log_macros ! ( logger: logger, "hello" , ) ;
50
+
51
+ all_log_macros ! ( logger: logger, target: "my_target" , "hello" ) ;
52
+ all_log_macros ! ( logger: logger, target: "my_target" , "hello" , ) ;
46
53
}
47
54
48
55
#[ test]
@@ -63,6 +70,14 @@ fn anonymous_args() {
63
70
64
71
all_log_macros ! ( target: "my_target" , "hello {}" , "world" ) ;
65
72
all_log_macros ! ( target: "my_target" , "hello {}" , "world" , ) ;
73
+
74
+ let logger = Logger ;
75
+
76
+ all_log_macros ! ( logger: logger, "hello {}" , "world" ) ;
77
+ all_log_macros ! ( logger: logger, "hello {}" , "world" , ) ;
78
+
79
+ all_log_macros ! ( logger: logger, target: "my_target" , "hello {}" , "world" ) ;
80
+ all_log_macros ! ( logger: logger, target: "my_target" , "hello {}" , "world" , ) ;
66
81
}
67
82
68
83
#[ test]
@@ -83,6 +98,14 @@ fn named_args() {
83
98
84
99
all_log_macros ! ( target: "my_target" , "hello {world}" , world = "world" ) ;
85
100
all_log_macros ! ( target: "my_target" , "hello {world}" , world = "world" , ) ;
101
+
102
+ let logger = Logger ;
103
+
104
+ all_log_macros ! ( logger: logger, "hello {world}" , world = "world" ) ;
105
+ all_log_macros ! ( logger: logger, "hello {world}" , world = "world" , ) ;
106
+
107
+ all_log_macros ! ( logger: logger, target: "my_target" , "hello {world}" , world = "world" ) ;
108
+ all_log_macros ! ( logger: logger, target: "my_target" , "hello {world}" , world = "world" , ) ;
86
109
}
87
110
88
111
#[ test]
@@ -105,81 +128,136 @@ fn inlined_args() {
105
128
106
129
all_log_macros ! ( target: "my_target" , "hello {world}" ) ;
107
130
all_log_macros ! ( target: "my_target" , "hello {world}" , ) ;
131
+
132
+ let logger = Logger ;
133
+
134
+ all_log_macros ! ( logger: logger, "hello {world}" ) ;
135
+ all_log_macros ! ( logger: logger, "hello {world}" , ) ;
136
+
137
+ all_log_macros ! ( logger: logger, target: "my_target" , "hello {world}" ) ;
138
+ all_log_macros ! ( logger: logger, target: "my_target" , "hello {world}" , ) ;
108
139
}
109
140
110
141
#[ test]
111
142
fn enabled ( ) {
143
+ let logger = Logger ;
144
+
112
145
for lvl in log:: Level :: iter ( ) {
146
+ let _enabled = log_enabled ! ( lvl) ;
113
147
let _enabled = log_enabled ! ( target: "my_target" , lvl) ;
148
+ let _enabled = log_enabled ! ( logger: logger, target: "my_target" , lvl) ;
149
+ let _enabled = log_enabled ! ( logger: logger, lvl) ;
114
150
}
115
151
}
116
152
117
153
#[ test]
118
154
fn expr ( ) {
155
+ let logger = Logger ;
156
+
119
157
for lvl in log:: Level :: iter ( ) {
120
158
log ! ( lvl, "hello" ) ;
159
+
160
+ log ! ( logger: logger, lvl, "hello" ) ;
121
161
}
122
162
}
123
163
124
164
#[ test]
125
165
#[ cfg( feature = "kv" ) ]
126
166
fn kv_no_args ( ) {
167
+ let logger = Logger ;
168
+
127
169
for lvl in log:: Level :: iter ( ) {
128
170
log ! ( target: "my_target" , lvl, cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello" ) ;
129
-
130
171
log ! ( lvl, cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello" ) ;
172
+
173
+ log ! ( logger: logger, target: "my_target" , lvl, cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello" ) ;
174
+ log ! ( logger: logger, lvl, cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello" ) ;
131
175
}
132
176
133
- all_log_macros ! ( logger: Logger , cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello" ) ;
134
- all_log_macros ! ( logger: Logger , target: "my_target" , cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello" ) ;
135
177
all_log_macros ! ( target: "my_target" , cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello" ) ;
136
178
all_log_macros ! ( target = "my_target" , cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello" ) ;
137
179
all_log_macros ! ( cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello" ) ;
180
+
181
+ all_log_macros ! ( logger: logger, cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello" ) ;
182
+ all_log_macros ! ( logger: logger, target: "my_target" , cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello" ) ;
138
183
}
139
184
140
185
#[ test]
141
186
#[ cfg( feature = "kv" ) ]
142
187
fn kv_expr_args ( ) {
188
+ let logger = Logger ;
189
+
143
190
for lvl in log:: Level :: iter ( ) {
144
191
log ! ( target: "my_target" , lvl, cat_math = { let mut x = 0 ; x += 1 ; x + 1 } ; "hello" ) ;
145
192
146
193
log ! ( lvl, target = "my_target" , cat_math = { let mut x = 0 ; x += 1 ; x + 1 } ; "hello" ) ;
147
194
log ! ( lvl, cat_math = { let mut x = 0 ; x += 1 ; x + 1 } ; "hello" ) ;
195
+
196
+ log ! ( logger: logger, target: "my_target" , lvl, cat_math = { let mut x = 0 ; x += 1 ; x + 1 } ; "hello" ) ;
197
+
198
+ log ! ( logger: logger, lvl, target = "my_target" , cat_math = { let mut x = 0 ; x += 1 ; x + 1 } ; "hello" ) ;
199
+ log ! ( logger: logger, lvl, cat_math = { let mut x = 0 ; x += 1 ; x + 1 } ; "hello" ) ;
148
200
}
149
201
150
202
all_log_macros ! ( target: "my_target" , cat_math = { let mut x = 0 ; x += 1 ; x + 1 } ; "hello" ) ;
151
203
all_log_macros ! ( target = "my_target" , cat_math = { let mut x = 0 ; x += 1 ; x + 1 } ; "hello" ) ;
152
204
all_log_macros ! ( cat_math = { let mut x = 0 ; x += 1 ; x + 1 } ; "hello" ) ;
205
+
206
+ all_log_macros ! ( logger: logger, target: "my_target" , cat_math = { let mut x = 0 ; x += 1 ; x + 1 } ; "hello" ) ;
207
+ all_log_macros ! ( logger: logger, target = "my_target" , cat_math = { let mut x = 0 ; x += 1 ; x + 1 } ; "hello" ) ;
208
+ all_log_macros ! ( logger: logger, cat_math = { let mut x = 0 ; x += 1 ; x + 1 } ; "hello" ) ;
153
209
}
154
210
155
211
#[ test]
156
212
#[ cfg( feature = "kv" ) ]
157
213
fn kv_anonymous_args ( ) {
214
+ let logger = Logger ;
215
+
158
216
for lvl in log:: Level :: iter ( ) {
159
217
log ! ( target: "my_target" , lvl, cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {}" , "world" ) ;
160
218
log ! ( lvl, target = "my_target" , cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {}" , "world" ) ;
161
219
162
220
log ! ( lvl, cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {}" , "world" ) ;
221
+
222
+ log ! ( logger: logger, target: "my_target" , lvl, cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {}" , "world" ) ;
223
+ log ! ( logger: logger, lvl, target = "my_target" , cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {}" , "world" ) ;
224
+
225
+ log ! ( logger: logger, lvl, cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {}" , "world" ) ;
163
226
}
164
227
165
228
all_log_macros ! ( target: "my_target" , cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {}" , "world" ) ;
166
229
all_log_macros ! ( target = "my_target" , cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {}" , "world" ) ;
167
230
all_log_macros ! ( cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {}" , "world" ) ;
231
+
232
+ all_log_macros ! ( logger: logger, target: "my_target" , cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {}" , "world" ) ;
233
+ all_log_macros ! ( logger: logger, target = "my_target" , cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {}" , "world" ) ;
234
+ all_log_macros ! ( logger: logger, cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {}" , "world" ) ;
168
235
}
169
236
170
237
#[ test]
171
238
#[ cfg( feature = "kv" ) ]
172
239
fn kv_named_args ( ) {
240
+ let logger = Logger ;
241
+
173
242
for lvl in log:: Level :: iter ( ) {
174
243
log ! ( target: "my_target" , lvl, cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {world}" , world = "world" ) ;
175
244
log ! ( lvl, target = "my_target" , cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {world}" , world = "world" ) ;
176
245
177
246
log ! ( lvl, cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {world}" , world = "world" ) ;
247
+
248
+ log ! ( logger: logger, target: "my_target" , lvl, cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {world}" , world = "world" ) ;
249
+ log ! ( logger: logger, lvl, target = "my_target" , cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {world}" , world = "world" ) ;
250
+
251
+ log ! ( logger: logger, lvl, cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {world}" , world = "world" ) ;
178
252
}
179
253
180
254
all_log_macros ! ( target: "my_target" , cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {world}" , world = "world" ) ;
181
255
all_log_macros ! ( target = "my_target" , cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {world}" , world = "world" ) ;
182
256
all_log_macros ! ( cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {world}" , world = "world" ) ;
257
+
258
+ all_log_macros ! ( logger: logger, target: "my_target" , cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {world}" , world = "world" ) ;
259
+ all_log_macros ! ( logger: logger, target = "my_target" , cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {world}" , world = "world" ) ;
260
+ all_log_macros ! ( logger: logger, cat_1 = "chashu" , cat_2 = "nori" , cat_count = 2 ; "hello {world}" , world = "world" ) ;
183
261
}
184
262
185
263
#[ test]
@@ -323,6 +401,20 @@ fn kv_serde() {
323
401
) ;
324
402
}
325
403
404
+ #[ test]
405
+ fn logger_short_lived ( ) {
406
+ all_log_macros ! ( logger: Logger , "hello" ) ;
407
+ all_log_macros ! ( logger: & Logger , "hello" ) ;
408
+ }
409
+
410
+ #[ test]
411
+ fn logger_expr ( ) {
412
+ all_log_macros ! ( logger: {
413
+ let logger = Logger ;
414
+ logger
415
+ } , "hello" ) ;
416
+ }
417
+
326
418
/// Some and None (from Option) are used in the macros.
327
419
#[ derive( Debug ) ]
328
420
enum Type {
0 commit comments