@@ -206,92 +206,108 @@ public Log4jLog(String name) {
206
206
207
207
@ Override
208
208
public boolean isFatalEnabled () {
209
- return logger .isEnabled (Level .FATAL , null , null );
209
+ return this . logger .isEnabled (Level .FATAL );
210
210
}
211
211
212
212
@ Override
213
213
public boolean isErrorEnabled () {
214
- return logger .isEnabled (Level .ERROR , null , null );
214
+ return this . logger .isEnabled (Level .ERROR );
215
215
}
216
216
217
217
@ Override
218
218
public boolean isWarnEnabled () {
219
- return logger .isEnabled (Level .WARN , null , null );
219
+ return this . logger .isEnabled (Level .WARN );
220
220
}
221
221
222
222
@ Override
223
223
public boolean isInfoEnabled () {
224
- return logger .isEnabled (Level .INFO , null , null );
224
+ return this . logger .isEnabled (Level .INFO );
225
225
}
226
226
227
227
@ Override
228
228
public boolean isDebugEnabled () {
229
- return logger .isEnabled (Level .DEBUG , null , null );
229
+ return this . logger .isEnabled (Level .DEBUG );
230
230
}
231
231
232
232
@ Override
233
233
public boolean isTraceEnabled () {
234
- return logger .isEnabled (Level .TRACE , null , null );
234
+ return this . logger .isEnabled (Level .TRACE );
235
235
}
236
236
237
237
@ Override
238
238
public void fatal (Object message ) {
239
- logger . logIfEnabled ( FQCN , Level .FATAL , null , message , null );
239
+ log ( Level .FATAL , message , null );
240
240
}
241
241
242
242
@ Override
243
243
public void fatal (Object message , Throwable exception ) {
244
- logger . logIfEnabled ( FQCN , Level .FATAL , null , message , exception );
244
+ log ( Level .FATAL , message , exception );
245
245
}
246
246
247
247
@ Override
248
248
public void error (Object message ) {
249
- logger . logIfEnabled ( FQCN , Level .ERROR , null , message , null );
249
+ log ( Level .ERROR , message , null );
250
250
}
251
251
252
252
@ Override
253
253
public void error (Object message , Throwable exception ) {
254
- logger . logIfEnabled ( FQCN , Level .ERROR , null , message , exception );
254
+ log ( Level .ERROR , message , exception );
255
255
}
256
256
257
257
@ Override
258
258
public void warn (Object message ) {
259
- logger . logIfEnabled ( FQCN , Level .WARN , null , message , null );
259
+ log ( Level .WARN , message , null );
260
260
}
261
261
262
262
@ Override
263
263
public void warn (Object message , Throwable exception ) {
264
- logger . logIfEnabled ( FQCN , Level .WARN , null , message , exception );
264
+ log ( Level .WARN , message , exception );
265
265
}
266
266
267
267
@ Override
268
268
public void info (Object message ) {
269
- logger . logIfEnabled ( FQCN , Level .INFO , null , message , null );
269
+ log ( Level .INFO , message , null );
270
270
}
271
271
272
272
@ Override
273
273
public void info (Object message , Throwable exception ) {
274
- logger . logIfEnabled ( FQCN , Level .INFO , null , message , exception );
274
+ log ( Level .INFO , message , exception );
275
275
}
276
276
277
277
@ Override
278
278
public void debug (Object message ) {
279
- logger . logIfEnabled ( FQCN , Level .DEBUG , null , message , null );
279
+ log ( Level .DEBUG , message , null );
280
280
}
281
281
282
282
@ Override
283
283
public void debug (Object message , Throwable exception ) {
284
- logger . logIfEnabled ( FQCN , Level .DEBUG , null , message , exception );
284
+ log ( Level .DEBUG , message , exception );
285
285
}
286
286
287
287
@ Override
288
288
public void trace (Object message ) {
289
- logger . logIfEnabled ( FQCN , Level .TRACE , null , message , null );
289
+ log ( Level .TRACE , message , null );
290
290
}
291
291
292
292
@ Override
293
293
public void trace (Object message , Throwable exception ) {
294
- logger .logIfEnabled (FQCN , Level .TRACE , null , message , exception );
294
+ log (Level .TRACE , message , exception );
295
+ }
296
+
297
+ private void log (Level level , Object message , Throwable exception ) {
298
+ if (message instanceof String ) {
299
+ // Explicitly pass a String argument, avoiding Log4j's argument expansion
300
+ // for message objects in case of "{}" sequences (SPR-16226)
301
+ if (exception != null ) {
302
+ this .logger .logIfEnabled (FQCN , level , null , (String ) message , exception );
303
+ }
304
+ else {
305
+ this .logger .logIfEnabled (FQCN , level , null , (String ) message );
306
+ }
307
+ }
308
+ else {
309
+ this .logger .logIfEnabled (FQCN , level , null , message , exception );
310
+ }
295
311
}
296
312
}
297
313
0 commit comments