1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache license, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the license for the specific language governing permissions and
15 * limitations under the license.
16 */
17 package org.apache.logging.log4j;
18
19 import org.apache.logging.log4j.message.EntryMessage;
20 import org.apache.logging.log4j.message.Message;
21 import org.apache.logging.log4j.message.MessageFactory;
22 import org.apache.logging.log4j.message.MessageFactory2;
23 import org.apache.logging.log4j.util.MessageSupplier;
24 import org.apache.logging.log4j.util.Supplier;
25
26 /**
27 * This is the central interface in the log4j package. Most logging operations, except configuration, are done through
28 * this interface.
29 *
30 * <p>
31 * The canonical way to obtain a Logger for a class is through {@link LogManager#getLogger()}. Typically, each class
32 * gets its own Logger named after its fully qualified class name (the default Logger name when obtained through the
33 * {@link LogManager#getLogger()} method). Thus, the simplest way to use this would be like so:
34 * </p>
35 *
36 * <pre>
37 * public class MyClass {
38 * private static final Logger LOGGER = LogManager.getLogger();
39 * // ...
40 * }
41 * </pre>
42 * <p>
43 * For ease of filtering, searching, sorting, etc., it is generally a good idea to create Loggers for each class rather
44 * than sharing Loggers. Instead, {@link Marker Markers} should be used for shared, filterable identification.
45 * </p>
46 * <p>
47 * For service provider implementations, it is recommended to extend the
48 * {@link org.apache.logging.log4j.spi.AbstractLogger} class rather than implementing this interface directly.
49 * </p>
50 *
51 * Since 2.4, methods have been added to the {@code Logger} interface to support lambda expressions. The new methods
52 * allow client code to lazily log messages without explicitly checking if the requested log level is enabled. For
53 * example, previously one would write:
54 *
55 * <pre>
56 * // pre-Java 8 style optimization: explicitly check the log level
57 * // to make sure the expensiveOperation() method is only called if necessary
58 * if (logger.isTraceEnabled()) {
59 * logger.trace("Some long-running operation returned {}", expensiveOperation());
60 * }
61 * </pre>
62 * <p>
63 * With Java 8, the same effect can be achieved with a lambda expression:
64 *
65 * <pre>
66 * // Java-8 style optimization: no need to explicitly check the log level:
67 * // the lambda expression is not evaluated if the TRACE level is not enabled
68 * logger.trace("Some long-running operation returned {}", () -> expensiveOperation());
69 * </pre>
70 *
71 * <p>
72 * Note that although {@link MessageSupplier} is provided, using {@link Supplier {@code Supplier<Message>}} works just the
73 * same. MessageSupplier was deprecated in 2.6 and un-deprecated in 2.8.1. Anonymous class usage of these APIs
74 * should prefer using Supplier instead.
75 * </p>
76 */
77 public interface Logger {
78
79 /**
80 * Logs a {@link Throwable} that has been caught to a specific logging level.
81 *
82 * @param level The logging Level.
83 * @param throwable the Throwable.
84 */
85 void catching(Level level, Throwable throwable);
86
87 /**
88 * Logs a {@link Throwable} that has been caught at the {@link Level#ERROR ERROR} level.
89 * Normally, one may wish to provide additional information with an exception while logging it;
90 * in these cases, one would not use this method.
91 * In other cases where simply logging the fact that an exception was swallowed somewhere
92 * (e.g., at the top of the stack trace in a {@code main()} method),
93 * this method is ideal for it.
94 *
95 * @param throwable the Throwable.
96 */
97 void catching(Throwable throwable);
98
99 /**
100 * Logs a message with the specific Marker at the {@link Level#DEBUG DEBUG} level.
101 *
102 * @param marker the marker data specific to this log statement
103 * @param message the message string to be logged
104 */
105 void debug(Marker marker, Message message);
106
107 /**
108 * Logs a message with the specific Marker at the {@link Level#DEBUG DEBUG} level.
109 *
110 * @param marker the marker data specific to this log statement
111 * @param message the message string to be logged
112 * @param throwable A Throwable or null.
113 */
114 void debug(Marker marker, Message message, Throwable throwable);
115
116 /**
117 * Logs a message which is only to be constructed if the logging level is the {@link Level#DEBUG DEBUG} level with
118 * the specified Marker. The {@code MessageSupplier} may or may not use the {@link MessageFactory} to construct the
119 * {@code Message}.
120 *
121 * @param marker the marker data specific to this log statement
122 * @param messageSupplier A function, which when called, produces the desired log message.
123 * @since 2.4
124 */
125 void debug(Marker marker, MessageSupplier messageSupplier);
126
127 /**
128 * Logs a message (only to be constructed if the logging level is the {@link Level#DEBUG DEBUG} level) with the
129 * specified Marker and including the stack trace of the {@link Throwable} <code>throwable</code> passed as parameter. The
130 * {@code MessageSupplier} may or may not use the {@link MessageFactory} to construct the {@code Message}.
131 *
132 * @param marker the marker data specific to this log statement
133 * @param messageSupplier A function, which when called, produces the desired log message.
134 * @param throwable A Throwable or null.
135 * @since 2.4
136 */
137 void debug(Marker marker, MessageSupplier messageSupplier, Throwable throwable);
138
139 /**
140 * Logs a message CharSequence with the {@link Level#DEBUG DEBUG} level.
141 *
142 * @param marker the marker data specific to this log statement
143 * @param message the message CharSequence to log.
144 */
145 void debug(Marker marker, CharSequence message);
146
147 /**
148 * Logs a message CharSequence at the {@link Level#DEBUG DEBUG} level including the stack trace of the
149 * {@link Throwable} <code>throwable</code> passed as parameter.
150 *
151 * @param marker the marker data specific to this log statement
152 * @param message the message CharSequence to log.
153 * @param throwable the {@code Throwable} to log, including its stack trace.
154 */
155 void debug(Marker marker, CharSequence message, Throwable throwable);
156
157 /**
158 * Logs a message object with the {@link Level#DEBUG DEBUG} level.
159 *
160 * @param marker the marker data specific to this log statement
161 * @param message the message object to log.
162 */
163 void debug(Marker marker, Object message);
164
165 /**
166 * Logs a message at the {@link Level#DEBUG DEBUG} level including the stack trace of the {@link Throwable}
167 * <code>throwable</code> passed as parameter.
168 *
169 * @param marker the marker data specific to this log statement
170 * @param message the message to log.
171 * @param throwable the {@code Throwable} to log, including its stack trace.
172 */
173 void debug(Marker marker, Object message, Throwable throwable);
174
175 /**
176 * Logs a message object with the {@link Level#DEBUG DEBUG} level.
177 *
178 * @param marker the marker data specific to this log statement
179 * @param message the message object to log.
180 */
181 void debug(Marker marker, String message);
182
183 /**
184 * Logs a message with parameters at the {@link Level#DEBUG DEBUG} level.
185 *
186 * @param marker the marker data specific to this log statement
187 * @param message the message to log; the format depends on the message factory.
188 * @param params parameters to the message.
189 * @see #getMessageFactory()
190 */
191 void debug(Marker marker, String message, Object... params);
192
193 /**
194 * Logs a message with parameters which are only to be constructed if the logging level is the {@link Level#DEBUG
195 * DEBUG} level.
196 *
197 * @param marker the marker data specific to this log statement
198 * @param message the message to log; the format depends on the message factory.
199 * @param paramSuppliers An array of functions, which when called, produce the desired log message parameters.
200 * @since 2.4
201 */
202 void debug(Marker marker, String message, Supplier<?>... paramSuppliers);
203
204 /**
205 * Logs a message at the {@link Level#DEBUG DEBUG} level including the stack trace of the {@link Throwable}
206 * <code>throwable</code> passed as parameter.
207 *
208 * @param marker the marker data specific to this log statement
209 * @param message the message to log.
210 * @param throwable the {@code Throwable} to log, including its stack trace.
211 */
212 void debug(Marker marker, String message, Throwable throwable);
213
214 /**
215 * Logs a message which is only to be constructed if the logging level is the {@link Level#DEBUG DEBUG} level with
216 * the specified Marker.
217 *
218 * @param marker the marker data specific to this log statement
219 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
220 * message factory.
221 * @since 2.4
222 */
223 void debug(Marker marker, Supplier<?> messageSupplier);
224
225 /**
226 * Logs a message (only to be constructed if the logging level is the {@link Level#DEBUG DEBUG} level) with the
227 * specified Marker and including the stack trace of the {@link Throwable} <code>throwable</code> passed as parameter.
228 *
229 * @param marker the marker data specific to this log statement
230 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
231 * message factory.
232 * @param throwable A Throwable or null.
233 * @since 2.4
234 */
235 void debug(Marker marker, Supplier<?> messageSupplier, Throwable throwable);
236
237 /**
238 * Logs a message with the specific Marker at the {@link Level#DEBUG DEBUG} level.
239 *
240 * @param message the message string to be logged
241 */
242 void debug(Message message);
243
244 /**
245 * Logs a message with the specific Marker at the {@link Level#DEBUG DEBUG} level.
246 *
247 * @param message the message string to be logged
248 * @param throwable A Throwable or null.
249 */
250 void debug(Message message, Throwable throwable);
251
252 /**
253 * Logs a message which is only to be constructed if the logging level is the {@link Level#DEBUG DEBUG} level. The
254 * {@code MessageSupplier} may or may not use the {@link MessageFactory} to construct the {@code Message}.
255 *
256 * @param messageSupplier A function, which when called, produces the desired log message.
257 * @since 2.4
258 */
259 void debug(MessageSupplier messageSupplier);
260
261 /**
262 * Logs a message (only to be constructed if the logging level is the {@link Level#DEBUG DEBUG} level) including the
263 * stack trace of the {@link Throwable} <code>throwable</code> passed as parameter. The {@code MessageSupplier} may or may
264 * not use the {@link MessageFactory} to construct the {@code Message}.
265 *
266 * @param messageSupplier A function, which when called, produces the desired log message.
267 * @param throwable the {@code Throwable} to log, including its stack trace.
268 * @since 2.4
269 */
270 void debug(MessageSupplier messageSupplier, Throwable throwable);
271
272 /**
273 * Logs a message CharSequence with the {@link Level#DEBUG DEBUG} level.
274 *
275 * @param message the message object to log.
276 */
277 void debug(CharSequence message);
278
279 /**
280 * Logs a CharSequence at the {@link Level#DEBUG DEBUG} level including the stack trace of the {@link Throwable}
281 * <code>throwable</code> passed as parameter.
282 *
283 * @param message the message CharSequence to log.
284 * @param throwable the {@code Throwable} to log, including its stack trace.
285 */
286 void debug(CharSequence message, Throwable throwable);
287
288 /**
289 * Logs a message object with the {@link Level#DEBUG DEBUG} level.
290 *
291 * @param message the message object to log.
292 */
293 void debug(Object message);
294
295 /**
296 * Logs a message at the {@link Level#DEBUG DEBUG} level including the stack trace of the {@link Throwable}
297 * <code>throwable</code> passed as parameter.
298 *
299 * @param message the message to log.
300 * @param throwable the {@code Throwable} to log, including its stack trace.
301 */
302 void debug(Object message, Throwable throwable);
303
304 /**
305 * Logs a message object with the {@link Level#DEBUG DEBUG} level.
306 *
307 * @param message the message string to log.
308 */
309 void debug(String message);
310
311 /**
312 * Logs a message with parameters at the {@link Level#DEBUG DEBUG} level.
313 *
314 * @param message the message to log; the format depends on the message factory.
315 * @param params parameters to the message.
316 * @see #getMessageFactory()
317 */
318 void debug(String message, Object... params);
319
320 /**
321 * Logs a message with parameters which are only to be constructed if the logging level is the {@link Level#DEBUG
322 * DEBUG} level.
323 *
324 * @param message the message to log; the format depends on the message factory.
325 * @param paramSuppliers An array of functions, which when called, produce the desired log message parameters.
326 * @since 2.4
327 */
328 void debug(String message, Supplier<?>... paramSuppliers);
329
330 /**
331 * Logs a message at the {@link Level#DEBUG DEBUG} level including the stack trace of the {@link Throwable}
332 * <code>throwable</code> passed as parameter.
333 *
334 * @param message the message to log.
335 * @param throwable the {@code Throwable} to log, including its stack trace.
336 */
337 void debug(String message, Throwable throwable);
338
339 /**
340 * Logs a message which is only to be constructed if the logging level is the {@link Level#DEBUG DEBUG} level.
341 *
342 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
343 * message factory.
344 * @since 2.4
345 */
346 void debug(Supplier<?> messageSupplier);
347
348 /**
349 * Logs a message (only to be constructed if the logging level is the {@link Level#DEBUG DEBUG} level) including the
350 * stack trace of the {@link Throwable} <code>throwable</code> passed as parameter.
351 *
352 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
353 * message factory.
354 * @param throwable the {@code Throwable} to log, including its stack trace.
355 * @since 2.4
356 */
357 void debug(Supplier<?> messageSupplier, Throwable throwable);
358
359 /**
360 * Logs a message with parameters at debug level.
361 *
362 * @param marker the marker data specific to this log statement
363 * @param message the message to log; the format depends on the message factory.
364 * @param p0 parameter to the message.
365 */
366 void debug(Marker marker, String message, Object p0);
367
368 /**
369 * Logs a message with parameters at debug level.
370 *
371 * @param marker the marker data specific to this log statement
372 * @param message the message to log; the format depends on the message factory.
373 * @param p0 parameter to the message.
374 * @param p1 parameter to the message.
375 */
376 void debug(Marker marker, String message, Object p0, Object p1);
377
378 /**
379 * Logs a message with parameters at debug level.
380 *
381 * @param marker the marker data specific to this log statement
382 * @param message the message to log; the format depends on the message factory.
383 * @param p0 parameter to the message.
384 * @param p1 parameter to the message.
385 * @param p2 parameter to the message.
386 */
387 void debug(Marker marker, String message, Object p0, Object p1, Object p2);
388
389 /**
390 * Logs a message with parameters at debug level.
391 *
392 * @param marker the marker data specific to this log statement
393 * @param message the message to log; the format depends on the message factory.
394 * @param p0 parameter to the message.
395 * @param p1 parameter to the message.
396 * @param p2 parameter to the message.
397 * @param p3 parameter to the message.
398 */
399 void debug(Marker marker, String message, Object p0, Object p1, Object p2, Object p3);
400
401 /**
402 * Logs a message with parameters at debug level.
403 *
404 * @param marker the marker data specific to this log statement
405 * @param message the message to log; the format depends on the message factory.
406 * @param p0 parameter to the message.
407 * @param p1 parameter to the message.
408 * @param p2 parameter to the message.
409 * @param p3 parameter to the message.
410 * @param p4 parameter to the message.
411 */
412 void debug(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4);
413
414 /**
415 * Logs a message with parameters at debug level.
416 *
417 * @param marker the marker data specific to this log statement
418 * @param message the message to log; the format depends on the message factory.
419 * @param p0 parameter to the message.
420 * @param p1 parameter to the message.
421 * @param p2 parameter to the message.
422 * @param p3 parameter to the message.
423 * @param p4 parameter to the message.
424 * @param p5 parameter to the message.
425 */
426 void debug(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5);
427
428 /**
429 * Logs a message with parameters at debug level.
430 *
431 * @param marker the marker data specific to this log statement
432 * @param message the message to log; the format depends on the message factory.
433 * @param p0 parameter to the message.
434 * @param p1 parameter to the message.
435 * @param p2 parameter to the message.
436 * @param p3 parameter to the message.
437 * @param p4 parameter to the message.
438 * @param p5 parameter to the message.
439 * @param p6 parameter to the message.
440 */
441 void debug(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5,
442 Object p6);
443
444 /**
445 * Logs a message with parameters at debug level.
446 *
447 * @param marker the marker data specific to this log statement
448 * @param message the message to log; the format depends on the message factory.
449 * @param p0 parameter to the message.
450 * @param p1 parameter to the message.
451 * @param p2 parameter to the message.
452 * @param p3 parameter to the message.
453 * @param p4 parameter to the message.
454 * @param p5 parameter to the message.
455 * @param p6 parameter to the message.
456 * @param p7 parameter to the message.
457 */
458 void debug(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
459 Object p7);
460
461 /**
462 * Logs a message with parameters at debug level.
463 *
464 * @param marker the marker data specific to this log statement
465 * @param message the message to log; the format depends on the message factory.
466 * @param p0 parameter to the message.
467 * @param p1 parameter to the message.
468 * @param p2 parameter to the message.
469 * @param p3 parameter to the message.
470 * @param p4 parameter to the message.
471 * @param p5 parameter to the message.
472 * @param p6 parameter to the message.
473 * @param p7 parameter to the message.
474 * @param p8 parameter to the message.
475 */
476 void debug(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
477 Object p7, Object p8);
478
479 /**
480 * Logs a message with parameters at debug level.
481 *
482 * @param marker the marker data specific to this log statement
483 * @param message the message to log; the format depends on the message factory.
484 * @param p0 parameter to the message.
485 * @param p1 parameter to the message.
486 * @param p2 parameter to the message.
487 * @param p3 parameter to the message.
488 * @param p4 parameter to the message.
489 * @param p5 parameter to the message.
490 * @param p6 parameter to the message.
491 * @param p7 parameter to the message.
492 * @param p8 parameter to the message.
493 * @param p9 parameter to the message.
494 */
495 void debug(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
496 Object p7, Object p8, Object p9);
497
498 /**
499 * Logs a message with parameters at debug level.
500 *
501 * @param message the message to log; the format depends on the message factory.
502 * @param p0 parameter to the message.
503 */
504 void debug(String message, Object p0);
505
506 /**
507 * Logs a message with parameters at debug level.
508 *
509 * @param message the message to log; the format depends on the message factory.
510 * @param p0 parameter to the message.
511 * @param p1 parameter to the message.
512 */
513 void debug(String message, Object p0, Object p1);
514
515 /**
516 * Logs a message with parameters at debug level.
517 *
518 * @param message the message to log; the format depends on the message factory.
519 * @param p0 parameter to the message.
520 * @param p1 parameter to the message.
521 * @param p2 parameter to the message.
522 */
523 void debug(String message, Object p0, Object p1, Object p2);
524
525 /**
526 * Logs a message with parameters at debug level.
527 *
528 * @param message the message to log; the format depends on the message factory.
529 * @param p0 parameter to the message.
530 * @param p1 parameter to the message.
531 * @param p2 parameter to the message.
532 * @param p3 parameter to the message.
533 */
534 void debug(String message, Object p0, Object p1, Object p2, Object p3);
535
536 /**
537 * Logs a message with parameters at debug level.
538 *
539 * @param message the message to log; the format depends on the message factory.
540 * @param p0 parameter to the message.
541 * @param p1 parameter to the message.
542 * @param p2 parameter to the message.
543 * @param p3 parameter to the message.
544 * @param p4 parameter to the message.
545 */
546 void debug(String message, Object p0, Object p1, Object p2, Object p3, Object p4);
547
548 /**
549 * Logs a message with parameters at debug level.
550 *
551 * @param message the message to log; the format depends on the message factory.
552 * @param p0 parameter to the message.
553 * @param p1 parameter to the message.
554 * @param p2 parameter to the message.
555 * @param p3 parameter to the message.
556 * @param p4 parameter to the message.
557 * @param p5 parameter to the message.
558 */
559 void debug(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5);
560
561 /**
562 * Logs a message with parameters at debug level.
563 *
564 * @param message the message to log; the format depends on the message factory.
565 * @param p0 parameter to the message.
566 * @param p1 parameter to the message.
567 * @param p2 parameter to the message.
568 * @param p3 parameter to the message.
569 * @param p4 parameter to the message.
570 * @param p5 parameter to the message.
571 * @param p6 parameter to the message.
572 */
573 void debug(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6);
574
575 /**
576 * Logs a message with parameters at debug level.
577 *
578 * @param message the message to log; the format depends on the message factory.
579 * @param p0 parameter to the message.
580 * @param p1 parameter to the message.
581 * @param p2 parameter to the message.
582 * @param p3 parameter to the message.
583 * @param p4 parameter to the message.
584 * @param p5 parameter to the message.
585 * @param p6 parameter to the message.
586 * @param p7 parameter to the message.
587 */
588 void debug(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7);
589
590 /**
591 * Logs a message with parameters at debug level.
592 *
593 * @param message the message to log; the format depends on the message factory.
594 * @param p0 parameter to the message.
595 * @param p1 parameter to the message.
596 * @param p2 parameter to the message.
597 * @param p3 parameter to the message.
598 * @param p4 parameter to the message.
599 * @param p5 parameter to the message.
600 * @param p6 parameter to the message.
601 * @param p7 parameter to the message.
602 * @param p8 parameter to the message.
603 */
604 void debug(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7,
605 Object p8);
606
607 /**
608 * Logs a message with parameters at debug level.
609 *
610 * @param message the message to log; the format depends on the message factory.
611 * @param p0 parameter to the message.
612 * @param p1 parameter to the message.
613 * @param p2 parameter to the message.
614 * @param p3 parameter to the message.
615 * @param p4 parameter to the message.
616 * @param p5 parameter to the message.
617 * @param p6 parameter to the message.
618 * @param p7 parameter to the message.
619 * @param p8 parameter to the message.
620 * @param p9 parameter to the message.
621 */
622 void debug(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7,
623 Object p8, Object p9);
624
625 /**
626 * Logs entry to a method. Used when the method in question has no parameters or when the parameters should not be
627 * logged.
628 * @deprecated Use {@link #traceEntry()} instead which performs the same function.
629 */
630 @Deprecated
631 void entry();
632
633 /**
634 * Logs entry to a method along with its parameters (consider using one of the {@code traceEntry(...)} methods instead.)
635 * <p>
636 * For example:
637 * </p>
638 * <pre>
639 * public void doSomething(String foo, int bar) {
640 * LOGGER.entry(foo, bar);
641 * // do something
642 * }
643 * </pre>
644 * <p>
645 * The use of methods such as this are more effective when combined with aspect-oriented programming or other
646 * bytecode manipulation tools. It can be rather tedious (and messy) to use this type of method manually.
647 * </p>
648 *
649 * @param params The parameters to the method.
650 * @deprecated Use {@link #traceEntry(String, Object...)} instead which performs the same function.
651 */
652 @Deprecated
653 void entry(Object... params);
654
655 /**
656 * Logs a message with the specific Marker at the {@link Level#ERROR ERROR} level.
657 *
658 * @param marker the marker data specific to this log statement
659 * @param message the message string to be logged
660 */
661 void error(Marker marker, Message message);
662
663 /**
664 * Logs a message with the specific Marker at the {@link Level#ERROR ERROR} level.
665 *
666 * @param marker the marker data specific to this log statement
667 * @param message the message string to be logged
668 * @param throwable A Throwable or null.
669 */
670 void error(Marker marker, Message message, Throwable throwable);
671
672 /**
673 * Logs a message which is only to be constructed if the logging level is the {@link Level#ERROR ERROR} level with
674 * the specified Marker. The {@code MessageSupplier} may or may not use the {@link MessageFactory} to construct the
675 * {@code Message}.
676 *
677 * @param marker the marker data specific to this log statement
678 * @param messageSupplier A function, which when called, produces the desired log message.
679 * @since 2.4
680 */
681 void error(Marker marker, MessageSupplier messageSupplier);
682
683 /**
684 * Logs a message (only to be constructed if the logging level is the {@link Level#ERROR ERROR} level) with the
685 * specified Marker and including the stack trace of the {@link Throwable} <code>throwable</code> passed as parameter. The
686 * {@code MessageSupplier} may or may not use the {@link MessageFactory} to construct the {@code Message}.
687 *
688 * @param marker the marker data specific to this log statement
689 * @param messageSupplier A function, which when called, produces the desired log message.
690 * @param throwable A Throwable or null.
691 * @since 2.4
692 */
693 void error(Marker marker, MessageSupplier messageSupplier, Throwable throwable);
694
695 /**
696 * Logs a message CharSequence with the {@link Level#ERROR ERROR} level.
697 *
698 * @param marker the marker data specific to this log statement.
699 * @param message the message CharSequence to log.
700 */
701 void error(Marker marker, CharSequence message);
702
703 /**
704 * Logs a CharSequence at the {@link Level#ERROR ERROR} level including the stack trace of the {@link Throwable}
705 * <code>throwable</code> passed as parameter.
706 *
707 * @param marker the marker data specific to this log statement.
708 * @param message the message CharSequence to log.
709 * @param throwable the {@code Throwable} to log, including its stack trace.
710 */
711 void error(Marker marker, CharSequence message, Throwable throwable);
712
713 /**
714 * Logs a message object with the {@link Level#ERROR ERROR} level.
715 *
716 * @param marker the marker data specific to this log statement.
717 * @param message the message object to log.
718 */
719 void error(Marker marker, Object message);
720
721 /**
722 * Logs a message at the {@link Level#ERROR ERROR} level including the stack trace of the {@link Throwable}
723 * <code>throwable</code> passed as parameter.
724 *
725 * @param marker the marker data specific to this log statement.
726 * @param message the message object to log.
727 * @param throwable the {@code Throwable} to log, including its stack trace.
728 */
729 void error(Marker marker, Object message, Throwable throwable);
730
731 /**
732 * Logs a message object with the {@link Level#ERROR ERROR} level.
733 *
734 * @param marker the marker data specific to this log statement.
735 * @param message the message object to log.
736 */
737 void error(Marker marker, String message);
738
739 /**
740 * Logs a message with parameters at the {@link Level#ERROR ERROR} level.
741 *
742 * @param marker the marker data specific to this log statement.
743 * @param message the message to log; the format depends on the message factory.
744 * @param params parameters to the message.
745 * @see #getMessageFactory()
746 */
747 void error(Marker marker, String message, Object... params);
748
749 /**
750 * Logs a message with parameters which are only to be constructed if the logging level is the {@link Level#ERROR
751 * ERROR} level.
752 *
753 * @param marker the marker data specific to this log statement
754 * @param message the message to log; the format depends on the message factory.
755 * @param paramSuppliers An array of functions, which when called, produce the desired log message parameters.
756 * @since 2.4
757 */
758 void error(Marker marker, String message, Supplier<?>... paramSuppliers);
759
760 /**
761 * Logs a message at the {@link Level#ERROR ERROR} level including the stack trace of the {@link Throwable}
762 * <code>throwable</code> passed as parameter.
763 *
764 * @param marker the marker data specific to this log statement.
765 * @param message the message object to log.
766 * @param throwable the {@code Throwable} to log, including its stack trace.
767 */
768 void error(Marker marker, String message, Throwable throwable);
769
770 /**
771 * Logs a message which is only to be constructed if the logging level is the {@link Level#ERROR ERROR} level with
772 * the specified Marker.
773 *
774 * @param marker the marker data specific to this log statement
775 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
776 * message factory.
777 * @since 2.4
778 */
779 void error(Marker marker, Supplier<?> messageSupplier);
780
781 /**
782 * Logs a message (only to be constructed if the logging level is the {@link Level#ERROR ERROR} level) with the
783 * specified Marker and including the stack trace of the {@link Throwable} <code>throwable</code> passed as parameter.
784 *
785 * @param marker the marker data specific to this log statement
786 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
787 * message factory.
788 * @param throwable A Throwable or null.
789 * @since 2.4
790 */
791 void error(Marker marker, Supplier<?> messageSupplier, Throwable throwable);
792
793 /**
794 * Logs a message with the specific Marker at the {@link Level#ERROR ERROR} level.
795 *
796 * @param message the message string to be logged
797 */
798 void error(Message message);
799
800 /**
801 * Logs a message with the specific Marker at the {@link Level#ERROR ERROR} level.
802 *
803 * @param message the message string to be logged
804 * @param throwable A Throwable or null.
805 */
806 void error(Message message, Throwable throwable);
807
808 /**
809 * Logs a message which is only to be constructed if the logging level is the {@link Level#ERROR ERROR} level. The
810 * {@code MessageSupplier} may or may not use the {@link MessageFactory} to construct the {@code Message}.
811 *
812 * @param messageSupplier A function, which when called, produces the desired log message.
813 * @since 2.4
814 */
815 void error(MessageSupplier messageSupplier);
816
817 /**
818 * Logs a message (only to be constructed if the logging level is the {@link Level#ERROR ERROR} level) including the
819 * stack trace of the {@link Throwable} <code>throwable</code> passed as parameter. The {@code MessageSupplier} may or may
820 * not use the {@link MessageFactory} to construct the {@code Message}.
821 *
822 * @param messageSupplier A function, which when called, produces the desired log message.
823 * @param throwable the {@code Throwable} to log, including its stack trace.
824 * @since 2.4
825 */
826 void error(MessageSupplier messageSupplier, Throwable throwable);
827
828 /**
829 * Logs a message CharSequence with the {@link Level#ERROR ERROR} level.
830 *
831 * @param message the message CharSequence to log.
832 */
833 void error(CharSequence message);
834
835 /**
836 * Logs a CharSequence at the {@link Level#ERROR ERROR} level including the stack trace of the {@link Throwable}
837 * <code>throwable</code> passed as parameter.
838 *
839 * @param message the message CharSequence to log.
840 * @param throwable the {@code Throwable} to log, including its stack trace.
841 */
842 void error(CharSequence message, Throwable throwable);
843
844 /**
845 * Logs a message object with the {@link Level#ERROR ERROR} level.
846 *
847 * @param message the message object to log.
848 */
849 void error(Object message);
850
851 /**
852 * Logs a message at the {@link Level#ERROR ERROR} level including the stack trace of the {@link Throwable}
853 * <code>throwable</code> passed as parameter.
854 *
855 * @param message the message object to log.
856 * @param throwable the {@code Throwable} to log, including its stack trace.
857 */
858 void error(Object message, Throwable throwable);
859
860 /**
861 * Logs a message object with the {@link Level#ERROR ERROR} level.
862 *
863 * @param message the message string to log.
864 */
865 void error(String message);
866
867 /**
868 * Logs a message with parameters at the {@link Level#ERROR ERROR} level.
869 *
870 * @param message the message to log; the format depends on the message factory.
871 * @param params parameters to the message.
872 * @see #getMessageFactory()
873 */
874 void error(String message, Object... params);
875
876 /**
877 * Logs a message with parameters which are only to be constructed if the logging level is the {@link Level#ERROR
878 * ERROR} level.
879 *
880 * @param message the message to log; the format depends on the message factory.
881 * @param paramSuppliers An array of functions, which when called, produce the desired log message parameters.
882 * @since 2.4
883 */
884 void error(String message, Supplier<?>... paramSuppliers);
885
886 /**
887 * Logs a message at the {@link Level#ERROR ERROR} level including the stack trace of the {@link Throwable}
888 * <code>throwable</code> passed as parameter.
889 *
890 * @param message the message object to log.
891 * @param throwable the {@code Throwable} to log, including its stack trace.
892 */
893 void error(String message, Throwable throwable);
894
895 /**
896 * Logs a message which is only to be constructed if the logging level is the {@link Level#ERROR ERROR} level.
897 *
898 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
899 * message factory.
900 * @since 2.4
901 */
902 void error(Supplier<?> messageSupplier);
903
904 /**
905 * Logs a message (only to be constructed if the logging level is the {@link Level#ERROR ERROR} level) including the
906 * stack trace of the {@link Throwable} <code>throwable</code> passed as parameter.
907 *
908 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
909 * message factory.
910 * @param throwable the {@code Throwable} to log, including its stack trace.
911 * @since 2.4
912 */
913 void error(Supplier<?> messageSupplier, Throwable throwable);
914
915 /**
916 * Logs a message with parameters at error level.
917 *
918 * @param marker the marker data specific to this log statement
919 * @param message the message to log; the format depends on the message factory.
920 * @param p0 parameter to the message.
921 */
922 void error(Marker marker, String message, Object p0);
923
924 /**
925 * Logs a message with parameters at error level.
926 *
927 * @param marker the marker data specific to this log statement
928 * @param message the message to log; the format depends on the message factory.
929 * @param p0 parameter to the message.
930 * @param p1 parameter to the message.
931 */
932 void error(Marker marker, String message, Object p0, Object p1);
933
934 /**
935 * Logs a message with parameters at error level.
936 *
937 * @param marker the marker data specific to this log statement
938 * @param message the message to log; the format depends on the message factory.
939 * @param p0 parameter to the message.
940 * @param p1 parameter to the message.
941 * @param p2 parameter to the message.
942 */
943 void error(Marker marker, String message, Object p0, Object p1, Object p2);
944
945 /**
946 * Logs a message with parameters at error level.
947 *
948 * @param marker the marker data specific to this log statement
949 * @param message the message to log; the format depends on the message factory.
950 * @param p0 parameter to the message.
951 * @param p1 parameter to the message.
952 * @param p2 parameter to the message.
953 * @param p3 parameter to the message.
954 */
955 void error(Marker marker, String message, Object p0, Object p1, Object p2, Object p3);
956
957 /**
958 * Logs a message with parameters at error level.
959 *
960 * @param marker the marker data specific to this log statement
961 * @param message the message to log; the format depends on the message factory.
962 * @param p0 parameter to the message.
963 * @param p1 parameter to the message.
964 * @param p2 parameter to the message.
965 * @param p3 parameter to the message.
966 * @param p4 parameter to the message.
967 */
968 void error(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4);
969
970 /**
971 * Logs a message with parameters at error level.
972 *
973 * @param marker the marker data specific to this log statement
974 * @param message the message to log; the format depends on the message factory.
975 * @param p0 parameter to the message.
976 * @param p1 parameter to the message.
977 * @param p2 parameter to the message.
978 * @param p3 parameter to the message.
979 * @param p4 parameter to the message.
980 * @param p5 parameter to the message.
981 */
982 void error(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5);
983
984 /**
985 * Logs a message with parameters at error level.
986 *
987 * @param marker the marker data specific to this log statement
988 * @param message the message to log; the format depends on the message factory.
989 * @param p0 parameter to the message.
990 * @param p1 parameter to the message.
991 * @param p2 parameter to the message.
992 * @param p3 parameter to the message.
993 * @param p4 parameter to the message.
994 * @param p5 parameter to the message.
995 * @param p6 parameter to the message.
996 */
997 void error(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5,
998 Object p6);
999
1000 /**
1001 * Logs a message with parameters at error level.
1002 *
1003 * @param marker the marker data specific to this log statement
1004 * @param message the message to log; the format depends on the message factory.
1005 * @param p0 parameter to the message.
1006 * @param p1 parameter to the message.
1007 * @param p2 parameter to the message.
1008 * @param p3 parameter to the message.
1009 * @param p4 parameter to the message.
1010 * @param p5 parameter to the message.
1011 * @param p6 parameter to the message.
1012 * @param p7 parameter to the message.
1013 */
1014 void error(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
1015 Object p7);
1016
1017 /**
1018 * Logs a message with parameters at error level.
1019 *
1020 * @param marker the marker data specific to this log statement
1021 * @param message the message to log; the format depends on the message factory.
1022 * @param p0 parameter to the message.
1023 * @param p1 parameter to the message.
1024 * @param p2 parameter to the message.
1025 * @param p3 parameter to the message.
1026 * @param p4 parameter to the message.
1027 * @param p5 parameter to the message.
1028 * @param p6 parameter to the message.
1029 * @param p7 parameter to the message.
1030 * @param p8 parameter to the message.
1031 */
1032 void error(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
1033 Object p7, Object p8);
1034
1035 /**
1036 * Logs a message with parameters at error level.
1037 *
1038 * @param marker the marker data specific to this log statement
1039 * @param message the message to log; the format depends on the message factory.
1040 * @param p0 parameter to the message.
1041 * @param p1 parameter to the message.
1042 * @param p2 parameter to the message.
1043 * @param p3 parameter to the message.
1044 * @param p4 parameter to the message.
1045 * @param p5 parameter to the message.
1046 * @param p6 parameter to the message.
1047 * @param p7 parameter to the message.
1048 * @param p8 parameter to the message.
1049 * @param p9 parameter to the message.
1050 */
1051 void error(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
1052 Object p7, Object p8, Object p9);
1053
1054 /**
1055 * Logs a message with parameters at error level.
1056 *
1057 * @param message the message to log; the format depends on the message factory.
1058 * @param p0 parameter to the message.
1059 */
1060 void error(String message, Object p0);
1061
1062 /**
1063 * Logs a message with parameters at error level.
1064 *
1065 * @param message the message to log; the format depends on the message factory.
1066 * @param p0 parameter to the message.
1067 * @param p1 parameter to the message.
1068 */
1069 void error(String message, Object p0, Object p1);
1070
1071 /**
1072 * Logs a message with parameters at error level.
1073 *
1074 * @param message the message to log; the format depends on the message factory.
1075 * @param p0 parameter to the message.
1076 * @param p1 parameter to the message.
1077 * @param p2 parameter to the message.
1078 */
1079 void error(String message, Object p0, Object p1, Object p2);
1080
1081 /**
1082 * Logs a message with parameters at error level.
1083 *
1084 * @param message the message to log; the format depends on the message factory.
1085 * @param p0 parameter to the message.
1086 * @param p1 parameter to the message.
1087 * @param p2 parameter to the message.
1088 * @param p3 parameter to the message.
1089 */
1090 void error(String message, Object p0, Object p1, Object p2, Object p3);
1091
1092 /**
1093 * Logs a message with parameters at error level.
1094 *
1095 * @param message the message to log; the format depends on the message factory.
1096 * @param p0 parameter to the message.
1097 * @param p1 parameter to the message.
1098 * @param p2 parameter to the message.
1099 * @param p3 parameter to the message.
1100 * @param p4 parameter to the message.
1101 */
1102 void error(String message, Object p0, Object p1, Object p2, Object p3, Object p4);
1103
1104 /**
1105 * Logs a message with parameters at error level.
1106 *
1107 * @param message the message to log; the format depends on the message factory.
1108 * @param p0 parameter to the message.
1109 * @param p1 parameter to the message.
1110 * @param p2 parameter to the message.
1111 * @param p3 parameter to the message.
1112 * @param p4 parameter to the message.
1113 * @param p5 parameter to the message.
1114 */
1115 void error(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5);
1116
1117 /**
1118 * Logs a message with parameters at error level.
1119 *
1120 * @param message the message to log; the format depends on the message factory.
1121 * @param p0 parameter to the message.
1122 * @param p1 parameter to the message.
1123 * @param p2 parameter to the message.
1124 * @param p3 parameter to the message.
1125 * @param p4 parameter to the message.
1126 * @param p5 parameter to the message.
1127 * @param p6 parameter to the message.
1128 */
1129 void error(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6);
1130
1131 /**
1132 * Logs a message with parameters at error level.
1133 *
1134 * @param message the message to log; the format depends on the message factory.
1135 * @param p0 parameter to the message.
1136 * @param p1 parameter to the message.
1137 * @param p2 parameter to the message.
1138 * @param p3 parameter to the message.
1139 * @param p4 parameter to the message.
1140 * @param p5 parameter to the message.
1141 * @param p6 parameter to the message.
1142 * @param p7 parameter to the message.
1143 */
1144 void error(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7);
1145
1146 /**
1147 * Logs a message with parameters at error level.
1148 *
1149 * @param message the message to log; the format depends on the message factory.
1150 * @param p0 parameter to the message.
1151 * @param p1 parameter to the message.
1152 * @param p2 parameter to the message.
1153 * @param p3 parameter to the message.
1154 * @param p4 parameter to the message.
1155 * @param p5 parameter to the message.
1156 * @param p6 parameter to the message.
1157 * @param p7 parameter to the message.
1158 * @param p8 parameter to the message.
1159 */
1160 void error(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7,
1161 Object p8);
1162
1163 /**
1164 * Logs a message with parameters at error level.
1165 *
1166 * @param message the message to log; the format depends on the message factory.
1167 * @param p0 parameter to the message.
1168 * @param p1 parameter to the message.
1169 * @param p2 parameter to the message.
1170 * @param p3 parameter to the message.
1171 * @param p4 parameter to the message.
1172 * @param p5 parameter to the message.
1173 * @param p6 parameter to the message.
1174 * @param p7 parameter to the message.
1175 * @param p8 parameter to the message.
1176 * @param p9 parameter to the message.
1177 */
1178 void error(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7,
1179 Object p8, Object p9);
1180
1181 /**
1182 * Logs exit from a method. Used for methods that do not return anything.
1183 * @deprecated Use {@link #traceExit()} instead which performs the same function.
1184 */
1185 @Deprecated
1186 void exit();
1187
1188 /**
1189 * Logs exiting from a method with the result. This may be coded as:
1190 *
1191 * <pre>
1192 * return LOGGER.exit(myResult);
1193 * </pre>
1194 *
1195 * @param <R> The type of the parameter and object being returned.
1196 * @param result The result being returned from the method call.
1197 * @return the result.
1198 * @deprecated Use {@link #traceExit(Object)} instead which performs the same function.
1199 */
1200 @Deprecated
1201 <R> R exit(R result);
1202
1203 /**
1204 * Logs a message with the specific Marker at the {@link Level#FATAL FATAL} level.
1205 *
1206 * @param marker the marker data specific to this log statement
1207 * @param message the message string to be logged
1208 */
1209 void fatal(Marker marker, Message message);
1210
1211 /**
1212 * Logs a message with the specific Marker at the {@link Level#FATAL FATAL} level.
1213 *
1214 * @param marker the marker data specific to this log statement
1215 * @param message the message string to be logged
1216 * @param throwable A Throwable or null.
1217 */
1218 void fatal(Marker marker, Message message, Throwable throwable);
1219
1220 /**
1221 * Logs a message which is only to be constructed if the logging level is the {@link Level#FATAL FATAL} level with
1222 * the specified Marker. The {@code MessageSupplier} may or may not use the {@link MessageFactory} to construct the
1223 * {@code Message}.
1224 *
1225 * @param marker the marker data specific to this log statement
1226 * @param messageSupplier A function, which when called, produces the desired log message.
1227 * @since 2.4
1228 */
1229 void fatal(Marker marker, MessageSupplier messageSupplier);
1230
1231 /**
1232 * Logs a message (only to be constructed if the logging level is the {@link Level#FATAL FATAL} level) with the
1233 * specified Marker and including the stack trace of the {@link Throwable} <code>throwable</code> passed as parameter. The
1234 * {@code MessageSupplier} may or may not use the {@link MessageFactory} to construct the {@code Message}.
1235 *
1236 * @param marker the marker data specific to this log statement
1237 * @param messageSupplier A function, which when called, produces the desired log message.
1238 * @param throwable A Throwable or null.
1239 * @since 2.4
1240 */
1241 void fatal(Marker marker, MessageSupplier messageSupplier, Throwable throwable);
1242
1243 /**
1244 * Logs a message CharSequence with the {@link Level#FATAL FATAL} level.
1245 *
1246 * @param marker The marker data specific to this log statement.
1247 * @param message the message CharSequence to log.
1248 */
1249 void fatal(Marker marker, CharSequence message);
1250
1251 /**
1252 * Logs a CharSequence at the {@link Level#FATAL FATAL} level including the stack trace of the {@link Throwable}
1253 * <code>throwable</code> passed as parameter.
1254 *
1255 * @param marker The marker data specific to this log statement.
1256 * @param message the message CharSequence to log.
1257 * @param throwable the {@code Throwable} to log, including its stack trace.
1258 */
1259 void fatal(Marker marker, CharSequence message, Throwable throwable);
1260
1261 /**
1262 * Logs a message object with the {@link Level#FATAL FATAL} level.
1263 *
1264 * @param marker The marker data specific to this log statement.
1265 * @param message the message object to log.
1266 */
1267 void fatal(Marker marker, Object message);
1268
1269 /**
1270 * Logs a message at the {@link Level#FATAL FATAL} level including the stack trace of the {@link Throwable}
1271 * <code>throwable</code> passed as parameter.
1272 *
1273 * @param marker The marker data specific to this log statement.
1274 * @param message the message object to log.
1275 * @param throwable the {@code Throwable} to log, including its stack trace.
1276 */
1277 void fatal(Marker marker, Object message, Throwable throwable);
1278
1279 /**
1280 * Logs a message object with the {@link Level#FATAL FATAL} level.
1281 *
1282 * @param marker The marker data specific to this log statement.
1283 * @param message the message object to log.
1284 */
1285 void fatal(Marker marker, String message);
1286
1287 /**
1288 * Logs a message with parameters at the {@link Level#FATAL FATAL} level.
1289 *
1290 * @param marker The marker data specific to this log statement.
1291 * @param message the message to log; the format depends on the message factory.
1292 * @param params parameters to the message.
1293 * @see #getMessageFactory()
1294 */
1295 void fatal(Marker marker, String message, Object... params);
1296
1297 /**
1298 * Logs a message with parameters which are only to be constructed if the logging level is the {@link Level#FATAL
1299 * FATAL} level.
1300 *
1301 * @param marker the marker data specific to this log statement
1302 * @param message the message to log; the format depends on the message factory.
1303 * @param paramSuppliers An array of functions, which when called, produce the desired log message parameters.
1304 * @since 2.4
1305 */
1306 void fatal(Marker marker, String message, Supplier<?>... paramSuppliers);
1307
1308 /**
1309 * Logs a message at the {@link Level#FATAL FATAL} level including the stack trace of the {@link Throwable}
1310 * <code>throwable</code> passed as parameter.
1311 *
1312 * @param marker The marker data specific to this log statement.
1313 * @param message the message object to log.
1314 * @param throwable the {@code Throwable} to log, including its stack trace.
1315 */
1316 void fatal(Marker marker, String message, Throwable throwable);
1317
1318 /**
1319 * Logs a message which is only to be constructed if the logging level is the {@link Level#FATAL FATAL} level with
1320 * the specified Marker.
1321 *
1322 * @param marker the marker data specific to this log statement
1323 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
1324 * message factory.
1325 * @since 2.4
1326 */
1327 void fatal(Marker marker, Supplier<?> messageSupplier);
1328
1329 /**
1330 * Logs a message (only to be constructed if the logging level is the {@link Level#FATAL FATAL} level) with the
1331 * specified Marker and including the stack trace of the {@link Throwable} <code>throwable</code> passed as parameter.
1332 *
1333 * @param marker the marker data specific to this log statement
1334 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
1335 * message factory.
1336 * @param throwable A Throwable or null.
1337 * @since 2.4
1338 */
1339 void fatal(Marker marker, Supplier<?> messageSupplier, Throwable throwable);
1340
1341 /**
1342 * Logs a message with the specific Marker at the {@link Level#FATAL FATAL} level.
1343 *
1344 * @param message the message string to be logged
1345 */
1346 void fatal(Message message);
1347
1348 /**
1349 * Logs a message with the specific Marker at the {@link Level#FATAL FATAL} level.
1350 *
1351 * @param message the message string to be logged
1352 * @param throwable A Throwable or null.
1353 */
1354 void fatal(Message message, Throwable throwable);
1355
1356 /**
1357 * Logs a message which is only to be constructed if the logging level is the {@link Level#FATAL FATAL} level. The
1358 * {@code MessageSupplier} may or may not use the {@link MessageFactory} to construct the {@code Message}.
1359 *
1360 * @param messageSupplier A function, which when called, produces the desired log message.
1361 * @since 2.4
1362 */
1363 void fatal(MessageSupplier messageSupplier);
1364
1365 /**
1366 * Logs a message (only to be constructed if the logging level is the {@link Level#FATAL FATAL} level) including the
1367 * stack trace of the {@link Throwable} <code>throwable</code> passed as parameter. The {@code MessageSupplier} may or may
1368 * not use the {@link MessageFactory} to construct the {@code Message}.
1369 *
1370 * @param messageSupplier A function, which when called, produces the desired log message.
1371 * @param throwable the {@code Throwable} to log, including its stack trace.
1372 * @since 2.4
1373 */
1374 void fatal(MessageSupplier messageSupplier, Throwable throwable);
1375
1376 /**
1377 * Logs a message CharSequence with the {@link Level#FATAL FATAL} level.
1378 *
1379 * @param message the message CharSequence to log.
1380 */
1381 void fatal(CharSequence message);
1382
1383 /**
1384 * Logs a CharSequence at the {@link Level#FATAL FATAL} level including the stack trace of the {@link Throwable}
1385 * <code>throwable</code> passed as parameter.
1386 *
1387 * @param message the message CharSequence to log.
1388 * @param throwable the {@code Throwable} to log, including its stack trace.
1389 */
1390 void fatal(CharSequence message, Throwable throwable);
1391
1392 /**
1393 * Logs a message object with the {@link Level#FATAL FATAL} level.
1394 *
1395 * @param message the message object to log.
1396 */
1397 void fatal(Object message);
1398
1399 /**
1400 * Logs a message at the {@link Level#FATAL FATAL} level including the stack trace of the {@link Throwable}
1401 * <code>throwable</code> passed as parameter.
1402 *
1403 * @param message the message object to log.
1404 * @param throwable the {@code Throwable} to log, including its stack trace.
1405 */
1406 void fatal(Object message, Throwable throwable);
1407
1408 /**
1409 * Logs a message object with the {@link Level#FATAL FATAL} level.
1410 *
1411 * @param message the message string to log.
1412 */
1413 void fatal(String message);
1414
1415 /**
1416 * Logs a message with parameters at the {@link Level#FATAL FATAL} level.
1417 *
1418 * @param message the message to log; the format depends on the message factory.
1419 * @param params parameters to the message.
1420 * @see #getMessageFactory()
1421 */
1422 void fatal(String message, Object... params);
1423
1424 /**
1425 * Logs a message with parameters which are only to be constructed if the logging level is the {@link Level#FATAL
1426 * FATAL} level.
1427 *
1428 * @param message the message to log; the format depends on the message factory.
1429 * @param paramSuppliers An array of functions, which when called, produce the desired log message parameters.
1430 * @since 2.4
1431 */
1432 void fatal(String message, Supplier<?>... paramSuppliers);
1433
1434 /**
1435 * Logs a message at the {@link Level#FATAL FATAL} level including the stack trace of the {@link Throwable}
1436 * <code>throwable</code> passed as parameter.
1437 *
1438 * @param message the message object to log.
1439 * @param throwable the {@code Throwable} to log, including its stack trace.
1440 */
1441 void fatal(String message, Throwable throwable);
1442
1443 /**
1444 * Logs a message which is only to be constructed if the logging level is the {@link Level#FATAL FATAL} level.
1445 *
1446 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
1447 * message factory.
1448 * @since 2.4
1449 */
1450 void fatal(Supplier<?> messageSupplier);
1451
1452 /**
1453 * Logs a message (only to be constructed if the logging level is the {@link Level#FATAL FATAL} level) including the
1454 * stack trace of the {@link Throwable} <code>throwable</code> passed as parameter.
1455 *
1456 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
1457 * message factory.
1458 * @param throwable the {@code Throwable} to log, including its stack trace.
1459 * @since 2.4
1460 */
1461 void fatal(Supplier<?> messageSupplier, Throwable throwable);
1462
1463 /**
1464 * Logs a message with parameters at fatal level.
1465 *
1466 * @param marker the marker data specific to this log statement
1467 * @param message the message to log; the format depends on the message factory.
1468 * @param p0 parameter to the message.
1469 */
1470 void fatal(Marker marker, String message, Object p0);
1471
1472 /**
1473 * Logs a message with parameters at fatal level.
1474 *
1475 * @param marker the marker data specific to this log statement
1476 * @param message the message to log; the format depends on the message factory.
1477 * @param p0 parameter to the message.
1478 * @param p1 parameter to the message.
1479 */
1480 void fatal(Marker marker, String message, Object p0, Object p1);
1481
1482 /**
1483 * Logs a message with parameters at fatal level.
1484 *
1485 * @param marker the marker data specific to this log statement
1486 * @param message the message to log; the format depends on the message factory.
1487 * @param p0 parameter to the message.
1488 * @param p1 parameter to the message.
1489 * @param p2 parameter to the message.
1490 */
1491 void fatal(Marker marker, String message, Object p0, Object p1, Object p2);
1492
1493 /**
1494 * Logs a message with parameters at fatal level.
1495 *
1496 * @param marker the marker data specific to this log statement
1497 * @param message the message to log; the format depends on the message factory.
1498 * @param p0 parameter to the message.
1499 * @param p1 parameter to the message.
1500 * @param p2 parameter to the message.
1501 * @param p3 parameter to the message.
1502 */
1503 void fatal(Marker marker, String message, Object p0, Object p1, Object p2, Object p3);
1504
1505 /**
1506 * Logs a message with parameters at fatal level.
1507 *
1508 * @param marker the marker data specific to this log statement
1509 * @param message the message to log; the format depends on the message factory.
1510 * @param p0 parameter to the message.
1511 * @param p1 parameter to the message.
1512 * @param p2 parameter to the message.
1513 * @param p3 parameter to the message.
1514 * @param p4 parameter to the message.
1515 */
1516 void fatal(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4);
1517
1518 /**
1519 * Logs a message with parameters at fatal level.
1520 *
1521 * @param marker the marker data specific to this log statement
1522 * @param message the message to log; the format depends on the message factory.
1523 * @param p0 parameter to the message.
1524 * @param p1 parameter to the message.
1525 * @param p2 parameter to the message.
1526 * @param p3 parameter to the message.
1527 * @param p4 parameter to the message.
1528 * @param p5 parameter to the message.
1529 */
1530 void fatal(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5);
1531
1532 /**
1533 * Logs a message with parameters at fatal level.
1534 *
1535 * @param marker the marker data specific to this log statement
1536 * @param message the message to log; the format depends on the message factory.
1537 * @param p0 parameter to the message.
1538 * @param p1 parameter to the message.
1539 * @param p2 parameter to the message.
1540 * @param p3 parameter to the message.
1541 * @param p4 parameter to the message.
1542 * @param p5 parameter to the message.
1543 * @param p6 parameter to the message.
1544 */
1545 void fatal(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5,
1546 Object p6);
1547
1548 /**
1549 * Logs a message with parameters at fatal level.
1550 *
1551 * @param marker the marker data specific to this log statement
1552 * @param message the message to log; the format depends on the message factory.
1553 * @param p0 parameter to the message.
1554 * @param p1 parameter to the message.
1555 * @param p2 parameter to the message.
1556 * @param p3 parameter to the message.
1557 * @param p4 parameter to the message.
1558 * @param p5 parameter to the message.
1559 * @param p6 parameter to the message.
1560 * @param p7 parameter to the message.
1561 */
1562 void fatal(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
1563 Object p7);
1564
1565 /**
1566 * Logs a message with parameters at fatal level.
1567 *
1568 * @param marker the marker data specific to this log statement
1569 * @param message the message to log; the format depends on the message factory.
1570 * @param p0 parameter to the message.
1571 * @param p1 parameter to the message.
1572 * @param p2 parameter to the message.
1573 * @param p3 parameter to the message.
1574 * @param p4 parameter to the message.
1575 * @param p5 parameter to the message.
1576 * @param p6 parameter to the message.
1577 * @param p7 parameter to the message.
1578 * @param p8 parameter to the message.
1579 */
1580 void fatal(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
1581 Object p7, Object p8);
1582
1583 /**
1584 * Logs a message with parameters at fatal level.
1585 *
1586 * @param marker the marker data specific to this log statement
1587 * @param message the message to log; the format depends on the message factory.
1588 * @param p0 parameter to the message.
1589 * @param p1 parameter to the message.
1590 * @param p2 parameter to the message.
1591 * @param p3 parameter to the message.
1592 * @param p4 parameter to the message.
1593 * @param p5 parameter to the message.
1594 * @param p6 parameter to the message.
1595 * @param p7 parameter to the message.
1596 * @param p8 parameter to the message.
1597 * @param p9 parameter to the message.
1598 */
1599 void fatal(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
1600 Object p7, Object p8, Object p9);
1601
1602 /**
1603 * Logs a message with parameters at fatal level.
1604 *
1605 * @param message the message to log; the format depends on the message factory.
1606 * @param p0 parameter to the message.
1607 */
1608 void fatal(String message, Object p0);
1609
1610 /**
1611 * Logs a message with parameters at fatal level.
1612 *
1613 * @param message the message to log; the format depends on the message factory.
1614 * @param p0 parameter to the message.
1615 * @param p1 parameter to the message.
1616 */
1617 void fatal(String message, Object p0, Object p1);
1618
1619 /**
1620 * Logs a message with parameters at fatal level.
1621 *
1622 * @param message the message to log; the format depends on the message factory.
1623 * @param p0 parameter to the message.
1624 * @param p1 parameter to the message.
1625 * @param p2 parameter to the message.
1626 */
1627 void fatal(String message, Object p0, Object p1, Object p2);
1628
1629 /**
1630 * Logs a message with parameters at fatal level.
1631 *
1632 * @param message the message to log; the format depends on the message factory.
1633 * @param p0 parameter to the message.
1634 * @param p1 parameter to the message.
1635 * @param p2 parameter to the message.
1636 * @param p3 parameter to the message.
1637 */
1638 void fatal(String message, Object p0, Object p1, Object p2, Object p3);
1639
1640 /**
1641 * Logs a message with parameters at fatal level.
1642 *
1643 * @param message the message to log; the format depends on the message factory.
1644 * @param p0 parameter to the message.
1645 * @param p1 parameter to the message.
1646 * @param p2 parameter to the message.
1647 * @param p3 parameter to the message.
1648 * @param p4 parameter to the message.
1649 */
1650 void fatal(String message, Object p0, Object p1, Object p2, Object p3, Object p4);
1651
1652 /**
1653 * Logs a message with parameters at fatal level.
1654 *
1655 * @param message the message to log; the format depends on the message factory.
1656 * @param p0 parameter to the message.
1657 * @param p1 parameter to the message.
1658 * @param p2 parameter to the message.
1659 * @param p3 parameter to the message.
1660 * @param p4 parameter to the message.
1661 * @param p5 parameter to the message.
1662 */
1663 void fatal(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5);
1664
1665 /**
1666 * Logs a message with parameters at fatal level.
1667 *
1668 * @param message the message to log; the format depends on the message factory.
1669 * @param p0 parameter to the message.
1670 * @param p1 parameter to the message.
1671 * @param p2 parameter to the message.
1672 * @param p3 parameter to the message.
1673 * @param p4 parameter to the message.
1674 * @param p5 parameter to the message.
1675 * @param p6 parameter to the message.
1676 */
1677 void fatal(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6);
1678
1679 /**
1680 * Logs a message with parameters at fatal level.
1681 *
1682 * @param message the message to log; the format depends on the message factory.
1683 * @param p0 parameter to the message.
1684 * @param p1 parameter to the message.
1685 * @param p2 parameter to the message.
1686 * @param p3 parameter to the message.
1687 * @param p4 parameter to the message.
1688 * @param p5 parameter to the message.
1689 * @param p6 parameter to the message.
1690 * @param p7 parameter to the message.
1691 */
1692 void fatal(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7);
1693
1694 /**
1695 * Logs a message with parameters at fatal level.
1696 *
1697 * @param message the message to log; the format depends on the message factory.
1698 * @param p0 parameter to the message.
1699 * @param p1 parameter to the message.
1700 * @param p2 parameter to the message.
1701 * @param p3 parameter to the message.
1702 * @param p4 parameter to the message.
1703 * @param p5 parameter to the message.
1704 * @param p6 parameter to the message.
1705 * @param p7 parameter to the message.
1706 * @param p8 parameter to the message.
1707 */
1708 void fatal(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7,
1709 Object p8);
1710
1711 /**
1712 * Logs a message with parameters at fatal level.
1713 *
1714 * @param message the message to log; the format depends on the message factory.
1715 * @param p0 parameter to the message.
1716 * @param p1 parameter to the message.
1717 * @param p2 parameter to the message.
1718 * @param p3 parameter to the message.
1719 * @param p4 parameter to the message.
1720 * @param p5 parameter to the message.
1721 * @param p6 parameter to the message.
1722 * @param p7 parameter to the message.
1723 * @param p8 parameter to the message.
1724 * @param p9 parameter to the message.
1725 */
1726 void fatal(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7,
1727 Object p8, Object p9);
1728
1729 /**
1730 * Gets the Level associated with the Logger.
1731 *
1732 * @return the Level associate with the Logger.
1733 */
1734 Level getLevel();
1735
1736 /**
1737 * Gets the message factory used to convert message Objects and Strings/CharSequences into actual log Messages.
1738 *
1739 * Since version 2.6, Log4j internally uses message factories that implement the {@link MessageFactory2} interface.
1740 * From version 2.6.2, the return type of this method was changed from {@link MessageFactory} to
1741 * {@code <MF extends MessageFactory> MF}. The returned factory will always implement {@link MessageFactory2},
1742 * but the return type of this method could not be changed to {@link MessageFactory2} without breaking binary
1743 * compatibility.
1744 *
1745 * @return the message factory, as an instance of {@link MessageFactory2}
1746 */
1747 <MF extends MessageFactory> MF getMessageFactory();
1748
1749 /**
1750 * Gets the logger name.
1751 *
1752 * @return the logger name.
1753 */
1754 String getName();
1755
1756 /**
1757 * Logs a message with the specific Marker at the {@link Level#INFO INFO} level.
1758 *
1759 * @param marker the marker data specific to this log statement
1760 * @param message the message string to be logged
1761 */
1762 void info(Marker marker, Message message);
1763
1764 /**
1765 * Logs a message with the specific Marker at the {@link Level#INFO INFO} level.
1766 *
1767 * @param marker the marker data specific to this log statement
1768 * @param message the message string to be logged
1769 * @param throwable A Throwable or null.
1770 */
1771 void info(Marker marker, Message message, Throwable throwable);
1772
1773 /**
1774 * Logs a message which is only to be constructed if the logging level is the {@link Level#INFO INFO} level with the
1775 * specified Marker. The {@code MessageSupplier} may or may not use the {@link MessageFactory} to construct the
1776 * {@code Message}.
1777 *
1778 * @param marker the marker data specific to this log statement
1779 * @param messageSupplier A function, which when called, produces the desired log message.
1780 * @since 2.4
1781 */
1782 void info(Marker marker, MessageSupplier messageSupplier);
1783
1784 /**
1785 * Logs a message (only to be constructed if the logging level is the {@link Level#INFO INFO} level) with the
1786 * specified Marker and including the stack trace of the {@link Throwable} <code>throwable</code> passed as parameter. The
1787 * {@code MessageSupplier} may or may not use the {@link MessageFactory} to construct the {@code Message}.
1788 *
1789 * @param marker the marker data specific to this log statement
1790 * @param messageSupplier A function, which when called, produces the desired log message.
1791 * @param throwable A Throwable or null.
1792 * @since 2.4
1793 */
1794 void info(Marker marker, MessageSupplier messageSupplier, Throwable throwable);
1795
1796 /**
1797 * Logs a message CharSequence with the {@link Level#INFO INFO} level.
1798 *
1799 * @param marker the marker data specific to this log statement
1800 * @param message the message CharSequence to log.
1801 */
1802 void info(Marker marker, CharSequence message);
1803
1804 /**
1805 * Logs a CharSequence at the {@link Level#INFO INFO} level including the stack trace of the {@link Throwable}
1806 * <code>throwable</code> passed as parameter.
1807 *
1808 * @param marker the marker data specific to this log statement
1809 * @param message the message CharSequence to log.
1810 * @param throwable the {@code Throwable} to log, including its stack trace.
1811 */
1812 void info(Marker marker, CharSequence message, Throwable throwable);
1813
1814 /**
1815 * Logs a message object with the {@link Level#INFO INFO} level.
1816 *
1817 * @param marker the marker data specific to this log statement
1818 * @param message the message object to log.
1819 */
1820 void info(Marker marker, Object message);
1821
1822 /**
1823 * Logs a message at the {@link Level#INFO INFO} level including the stack trace of the {@link Throwable}
1824 * <code>throwable</code> passed as parameter.
1825 *
1826 * @param marker the marker data specific to this log statement
1827 * @param message the message object to log.
1828 * @param throwable the {@code Throwable} to log, including its stack trace.
1829 */
1830 void info(Marker marker, Object message, Throwable throwable);
1831
1832 /**
1833 * Logs a message object with the {@link Level#INFO INFO} level.
1834 *
1835 * @param marker the marker data specific to this log statement
1836 * @param message the message object to log.
1837 */
1838 void info(Marker marker, String message);
1839
1840 /**
1841 * Logs a message with parameters at the {@link Level#INFO INFO} level.
1842 *
1843 * @param marker the marker data specific to this log statement
1844 * @param message the message to log; the format depends on the message factory.
1845 * @param params parameters to the message.
1846 * @see #getMessageFactory()
1847 */
1848 void info(Marker marker, String message, Object... params);
1849
1850 /**
1851 * Logs a message with parameters which are only to be constructed if the logging level is the {@link Level#INFO
1852 * INFO} level.
1853 *
1854 * @param marker the marker data specific to this log statement
1855 * @param message the message to log; the format depends on the message factory.
1856 * @param paramSuppliers An array of functions, which when called, produce the desired log message parameters.
1857 * @since 2.4
1858 */
1859 void info(Marker marker, String message, Supplier<?>... paramSuppliers);
1860
1861 /**
1862 * Logs a message at the {@link Level#INFO INFO} level including the stack trace of the {@link Throwable}
1863 * <code>throwable</code> passed as parameter.
1864 *
1865 * @param marker the marker data specific to this log statement
1866 * @param message the message object to log.
1867 * @param throwable the {@code Throwable} to log, including its stack trace.
1868 */
1869 void info(Marker marker, String message, Throwable throwable);
1870
1871 /**
1872 * Logs a message which is only to be constructed if the logging level is the {@link Level#INFO INFO} level with the
1873 * specified Marker.
1874 *
1875 * @param marker the marker data specific to this log statement
1876 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
1877 * message factory.
1878 * @since 2.4
1879 */
1880 void info(Marker marker, Supplier<?> messageSupplier);
1881
1882 /**
1883 * Logs a message (only to be constructed if the logging level is the {@link Level#INFO INFO} level) with the
1884 * specified Marker and including the stack trace of the {@link Throwable} <code>throwable</code> passed as parameter.
1885 *
1886 * @param marker the marker data specific to this log statement
1887 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
1888 * message factory.
1889 * @param throwable A Throwable or null.
1890 * @since 2.4
1891 */
1892 void info(Marker marker, Supplier<?> messageSupplier, Throwable throwable);
1893
1894 /**
1895 * Logs a message with the specific Marker at the {@link Level#INFO INFO} level.
1896 *
1897 * @param message the message string to be logged
1898 */
1899 void info(Message message);
1900
1901 /**
1902 * Logs a message with the specific Marker at the {@link Level#INFO INFO} level.
1903 *
1904 * @param message the message string to be logged
1905 * @param throwable A Throwable or null.
1906 */
1907 void info(Message message, Throwable throwable);
1908
1909 /**
1910 * Logs a message which is only to be constructed if the logging level is the {@link Level#INFO INFO} level. The
1911 * {@code MessageSupplier} may or may not use the {@link MessageFactory} to construct the {@code Message}.
1912 *
1913 * @param messageSupplier A function, which when called, produces the desired log message.
1914 * @since 2.4
1915 */
1916 void info(MessageSupplier messageSupplier);
1917
1918 /**
1919 * Logs a message (only to be constructed if the logging level is the {@link Level#INFO INFO} level) including the
1920 * stack trace of the {@link Throwable} <code>throwable</code> passed as parameter. The {@code MessageSupplier} may or may
1921 * not use the {@link MessageFactory} to construct the {@code Message}.
1922 *
1923 * @param messageSupplier A function, which when called, produces the desired log message.
1924 * @param throwable the {@code Throwable} to log, including its stack trace.
1925 * @since 2.4
1926 */
1927 void info(MessageSupplier messageSupplier, Throwable throwable);
1928
1929 /**
1930 * Logs a message CharSequence with the {@link Level#INFO INFO} level.
1931 *
1932 * @param message the message CharSequence to log.
1933 */
1934 void info(CharSequence message);
1935
1936 /**
1937 * Logs a CharSequence at the {@link Level#INFO INFO} level including the stack trace of the {@link Throwable}
1938 * <code>throwable</code> passed as parameter.
1939 *
1940 * @param message the message CharSequence to log.
1941 * @param throwable the {@code Throwable} to log, including its stack trace.
1942 */
1943 void info(CharSequence message, Throwable throwable);
1944
1945 /**
1946 * Logs a message object with the {@link Level#INFO INFO} level.
1947 *
1948 * @param message the message object to log.
1949 */
1950 void info(Object message);
1951
1952 /**
1953 * Logs a message at the {@link Level#INFO INFO} level including the stack trace of the {@link Throwable}
1954 * <code>throwable</code> passed as parameter.
1955 *
1956 * @param message the message object to log.
1957 * @param throwable the {@code Throwable} to log, including its stack trace.
1958 */
1959 void info(Object message, Throwable throwable);
1960
1961 /**
1962 * Logs a message object with the {@link Level#INFO INFO} level.
1963 *
1964 * @param message the message string to log.
1965 */
1966 void info(String message);
1967
1968 /**
1969 * Logs a message with parameters at the {@link Level#INFO INFO} level.
1970 *
1971 * @param message the message to log; the format depends on the message factory.
1972 * @param params parameters to the message.
1973 * @see #getMessageFactory()
1974 */
1975 void info(String message, Object... params);
1976
1977 /**
1978 * Logs a message with parameters which are only to be constructed if the logging level is the {@link Level#INFO
1979 * INFO} level.
1980 *
1981 * @param message the message to log; the format depends on the message factory.
1982 * @param paramSuppliers An array of functions, which when called, produce the desired log message parameters.
1983 * @since 2.4
1984 */
1985 void info(String message, Supplier<?>... paramSuppliers);
1986
1987 /**
1988 * Logs a message at the {@link Level#INFO INFO} level including the stack trace of the {@link Throwable}
1989 * <code>throwable</code> passed as parameter.
1990 *
1991 * @param message the message object to log.
1992 * @param throwable the {@code Throwable} to log, including its stack trace.
1993 */
1994 void info(String message, Throwable throwable);
1995
1996 /**
1997 * Logs a message which is only to be constructed if the logging level is the {@link Level#INFO INFO} level.
1998 *
1999 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
2000 * message factory.
2001 * @since 2.4
2002 */
2003 void info(Supplier<?> messageSupplier);
2004
2005 /**
2006 * Logs a message (only to be constructed if the logging level is the {@link Level#INFO INFO} level) including the
2007 * stack trace of the {@link Throwable} <code>throwable</code> passed as parameter.
2008 *
2009 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
2010 * message factory.
2011 * @param throwable the {@code Throwable} to log, including its stack trace.
2012 * @since 2.4
2013 */
2014 void info(Supplier<?> messageSupplier, Throwable throwable);
2015
2016 /**
2017 * Logs a message with parameters at info level.
2018 *
2019 * @param marker the marker data specific to this log statement
2020 * @param message the message to log; the format depends on the message factory.
2021 * @param p0 parameter to the message.
2022 */
2023 void info(Marker marker, String message, Object p0);
2024
2025 /**
2026 * Logs a message with parameters at info level.
2027 *
2028 * @param marker the marker data specific to this log statement
2029 * @param message the message to log; the format depends on the message factory.
2030 * @param p0 parameter to the message.
2031 * @param p1 parameter to the message.
2032 */
2033 void info(Marker marker, String message, Object p0, Object p1);
2034
2035 /**
2036 * Logs a message with parameters at info level.
2037 *
2038 * @param marker the marker data specific to this log statement
2039 * @param message the message to log; the format depends on the message factory.
2040 * @param p0 parameter to the message.
2041 * @param p1 parameter to the message.
2042 * @param p2 parameter to the message.
2043 */
2044 void info(Marker marker, String message, Object p0, Object p1, Object p2);
2045
2046 /**
2047 * Logs a message with parameters at info level.
2048 *
2049 * @param marker the marker data specific to this log statement
2050 * @param message the message to log; the format depends on the message factory.
2051 * @param p0 parameter to the message.
2052 * @param p1 parameter to the message.
2053 * @param p2 parameter to the message.
2054 * @param p3 parameter to the message.
2055 */
2056 void info(Marker marker, String message, Object p0, Object p1, Object p2, Object p3);
2057
2058 /**
2059 * Logs a message with parameters at info level.
2060 *
2061 * @param marker the marker data specific to this log statement
2062 * @param message the message to log; the format depends on the message factory.
2063 * @param p0 parameter to the message.
2064 * @param p1 parameter to the message.
2065 * @param p2 parameter to the message.
2066 * @param p3 parameter to the message.
2067 * @param p4 parameter to the message.
2068 */
2069 void info(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4);
2070
2071 /**
2072 * Logs a message with parameters at info level.
2073 *
2074 * @param marker the marker data specific to this log statement
2075 * @param message the message to log; the format depends on the message factory.
2076 * @param p0 parameter to the message.
2077 * @param p1 parameter to the message.
2078 * @param p2 parameter to the message.
2079 * @param p3 parameter to the message.
2080 * @param p4 parameter to the message.
2081 * @param p5 parameter to the message.
2082 */
2083 void info(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5);
2084
2085 /**
2086 * Logs a message with parameters at info level.
2087 *
2088 * @param marker the marker data specific to this log statement
2089 * @param message the message to log; the format depends on the message factory.
2090 * @param p0 parameter to the message.
2091 * @param p1 parameter to the message.
2092 * @param p2 parameter to the message.
2093 * @param p3 parameter to the message.
2094 * @param p4 parameter to the message.
2095 * @param p5 parameter to the message.
2096 * @param p6 parameter to the message.
2097 */
2098 void info(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5,
2099 Object p6);
2100
2101 /**
2102 * Logs a message with parameters at info level.
2103 *
2104 * @param marker the marker data specific to this log statement
2105 * @param message the message to log; the format depends on the message factory.
2106 * @param p0 parameter to the message.
2107 * @param p1 parameter to the message.
2108 * @param p2 parameter to the message.
2109 * @param p3 parameter to the message.
2110 * @param p4 parameter to the message.
2111 * @param p5 parameter to the message.
2112 * @param p6 parameter to the message.
2113 * @param p7 parameter to the message.
2114 */
2115 void info(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
2116 Object p7);
2117
2118 /**
2119 * Logs a message with parameters at info level.
2120 *
2121 * @param marker the marker data specific to this log statement
2122 * @param message the message to log; the format depends on the message factory.
2123 * @param p0 parameter to the message.
2124 * @param p1 parameter to the message.
2125 * @param p2 parameter to the message.
2126 * @param p3 parameter to the message.
2127 * @param p4 parameter to the message.
2128 * @param p5 parameter to the message.
2129 * @param p6 parameter to the message.
2130 * @param p7 parameter to the message.
2131 * @param p8 parameter to the message.
2132 */
2133 void info(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
2134 Object p7, Object p8);
2135
2136 /**
2137 * Logs a message with parameters at info level.
2138 *
2139 * @param marker the marker data specific to this log statement
2140 * @param message the message to log; the format depends on the message factory.
2141 * @param p0 parameter to the message.
2142 * @param p1 parameter to the message.
2143 * @param p2 parameter to the message.
2144 * @param p3 parameter to the message.
2145 * @param p4 parameter to the message.
2146 * @param p5 parameter to the message.
2147 * @param p6 parameter to the message.
2148 * @param p7 parameter to the message.
2149 * @param p8 parameter to the message.
2150 * @param p9 parameter to the message.
2151 */
2152 void info(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
2153 Object p7, Object p8, Object p9);
2154
2155 /**
2156 * Logs a message with parameters at info level.
2157 *
2158 * @param message the message to log; the format depends on the message factory.
2159 * @param p0 parameter to the message.
2160 */
2161 void info(String message, Object p0);
2162
2163 /**
2164 * Logs a message with parameters at info level.
2165 *
2166 * @param message the message to log; the format depends on the message factory.
2167 * @param p0 parameter to the message.
2168 * @param p1 parameter to the message.
2169 */
2170 void info(String message, Object p0, Object p1);
2171
2172 /**
2173 * Logs a message with parameters at info level.
2174 *
2175 * @param message the message to log; the format depends on the message factory.
2176 * @param p0 parameter to the message.
2177 * @param p1 parameter to the message.
2178 * @param p2 parameter to the message.
2179 */
2180 void info(String message, Object p0, Object p1, Object p2);
2181
2182 /**
2183 * Logs a message with parameters at info level.
2184 *
2185 * @param message the message to log; the format depends on the message factory.
2186 * @param p0 parameter to the message.
2187 * @param p1 parameter to the message.
2188 * @param p2 parameter to the message.
2189 * @param p3 parameter to the message.
2190 */
2191 void info(String message, Object p0, Object p1, Object p2, Object p3);
2192
2193 /**
2194 * Logs a message with parameters at info level.
2195 *
2196 * @param message the message to log; the format depends on the message factory.
2197 * @param p0 parameter to the message.
2198 * @param p1 parameter to the message.
2199 * @param p2 parameter to the message.
2200 * @param p3 parameter to the message.
2201 * @param p4 parameter to the message.
2202 */
2203 void info(String message, Object p0, Object p1, Object p2, Object p3, Object p4);
2204
2205 /**
2206 * Logs a message with parameters at info level.
2207 *
2208 * @param message the message to log; the format depends on the message factory.
2209 * @param p0 parameter to the message.
2210 * @param p1 parameter to the message.
2211 * @param p2 parameter to the message.
2212 * @param p3 parameter to the message.
2213 * @param p4 parameter to the message.
2214 * @param p5 parameter to the message.
2215 */
2216 void info(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5);
2217
2218 /**
2219 * Logs a message with parameters at info level.
2220 *
2221 * @param message the message to log; the format depends on the message factory.
2222 * @param p0 parameter to the message.
2223 * @param p1 parameter to the message.
2224 * @param p2 parameter to the message.
2225 * @param p3 parameter to the message.
2226 * @param p4 parameter to the message.
2227 * @param p5 parameter to the message.
2228 * @param p6 parameter to the message.
2229 */
2230 void info(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6);
2231
2232 /**
2233 * Logs a message with parameters at info level.
2234 *
2235 * @param message the message to log; the format depends on the message factory.
2236 * @param p0 parameter to the message.
2237 * @param p1 parameter to the message.
2238 * @param p2 parameter to the message.
2239 * @param p3 parameter to the message.
2240 * @param p4 parameter to the message.
2241 * @param p5 parameter to the message.
2242 * @param p6 parameter to the message.
2243 * @param p7 parameter to the message.
2244 */
2245 void info(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7);
2246
2247 /**
2248 * Logs a message with parameters at info level.
2249 *
2250 * @param message the message to log; the format depends on the message factory.
2251 * @param p0 parameter to the message.
2252 * @param p1 parameter to the message.
2253 * @param p2 parameter to the message.
2254 * @param p3 parameter to the message.
2255 * @param p4 parameter to the message.
2256 * @param p5 parameter to the message.
2257 * @param p6 parameter to the message.
2258 * @param p7 parameter to the message.
2259 * @param p8 parameter to the message.
2260 */
2261 void info(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7,
2262 Object p8);
2263
2264 /**
2265 * Logs a message with parameters at info level.
2266 *
2267 * @param message the message to log; the format depends on the message factory.
2268 * @param p0 parameter to the message.
2269 * @param p1 parameter to the message.
2270 * @param p2 parameter to the message.
2271 * @param p3 parameter to the message.
2272 * @param p4 parameter to the message.
2273 * @param p5 parameter to the message.
2274 * @param p6 parameter to the message.
2275 * @param p7 parameter to the message.
2276 * @param p8 parameter to the message.
2277 * @param p9 parameter to the message.
2278 */
2279 void info(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7,
2280 Object p8, Object p9);
2281
2282 /**
2283 * Checks whether this Logger is enabled for the {@link Level#DEBUG DEBUG} Level.
2284 *
2285 * @return boolean - {@code true} if this Logger is enabled for level DEBUG, {@code false} otherwise.
2286 */
2287 boolean isDebugEnabled();
2288
2289 /**
2290 * Checks whether this Logger is enabled for the {@link Level#DEBUG DEBUG} Level.
2291 *
2292 * @param marker The Marker to check
2293 * @return boolean - {@code true} if this Logger is enabled for level DEBUG, {@code false} otherwise.
2294 */
2295 boolean isDebugEnabled(Marker marker);
2296
2297 /**
2298 * Checks whether this Logger is enabled for the given Level.
2299 * <p>
2300 * Note that passing in {@link Level#OFF OFF} always returns {@code true}.
2301 * </p>
2302 *
2303 * @param level the Level to check
2304 * @return boolean - {@code true} if this Logger is enabled for level, {@code false} otherwise.
2305 */
2306 boolean isEnabled(Level level);
2307
2308 /**
2309 * Checks whether this Logger is enabled for the given Level and Marker.
2310 *
2311 * @param level The Level to check
2312 * @param marker The Marker to check
2313 * @return boolean - {@code true} if this Logger is enabled for level and marker, {@code false} otherwise.
2314 */
2315 boolean isEnabled(Level level, Marker marker);
2316
2317 /**
2318 * Checks whether this Logger is enabled for the {@link Level#ERROR ERROR} Level.
2319 *
2320 * @return boolean - {@code true} if this Logger is enabled for level {@link Level#ERROR ERROR}, {@code false}
2321 * otherwise.
2322 */
2323 boolean isErrorEnabled();
2324
2325 /**
2326 * Checks whether this Logger is enabled for the {@link Level#ERROR ERROR} Level.
2327 *
2328 * @param marker The Marker to check
2329 * @return boolean - {@code true} if this Logger is enabled for level {@link Level#ERROR ERROR}, {@code false}
2330 * otherwise.
2331 */
2332 boolean isErrorEnabled(Marker marker);
2333
2334 /**
2335 * Checks whether this Logger is enabled for the {@link Level#FATAL FATAL} Level.
2336 *
2337 * @return boolean - {@code true} if this Logger is enabled for level {@link Level#FATAL FATAL}, {@code false}
2338 * otherwise.
2339 */
2340 boolean isFatalEnabled();
2341
2342 /**
2343 * Checks whether this Logger is enabled for the {@link Level#FATAL FATAL} Level.
2344 *
2345 * @param marker The Marker to check
2346 * @return boolean - {@code true} if this Logger is enabled for level {@link Level#FATAL FATAL}, {@code false}
2347 * otherwise.
2348 */
2349 boolean isFatalEnabled(Marker marker);
2350
2351 /**
2352 * Checks whether this Logger is enabled for the {@link Level#INFO INFO} Level.
2353 *
2354 * @return boolean - {@code true} if this Logger is enabled for level INFO, {@code false} otherwise.
2355 */
2356 boolean isInfoEnabled();
2357
2358 /**
2359 * Checks whether this Logger is enabled for the {@link Level#INFO INFO} Level.
2360 *
2361 * @param marker The Marker to check
2362 * @return boolean - {@code true} if this Logger is enabled for level INFO, {@code false} otherwise.
2363 */
2364 boolean isInfoEnabled(Marker marker);
2365
2366 /**
2367 * Checks whether this Logger is enabled for the {@link Level#TRACE TRACE} level.
2368 *
2369 * @return boolean - {@code true} if this Logger is enabled for level TRACE, {@code false} otherwise.
2370 */
2371 boolean isTraceEnabled();
2372
2373 /**
2374 * Checks whether this Logger is enabled for the {@link Level#TRACE TRACE} level.
2375 *
2376 * @param marker The Marker to check
2377 * @return boolean - {@code true} if this Logger is enabled for level TRACE, {@code false} otherwise.
2378 */
2379 boolean isTraceEnabled(Marker marker);
2380
2381 /**
2382 * Checks whether this Logger is enabled for the {@link Level#WARN WARN} Level.
2383 *
2384 * @return boolean - {@code true} if this Logger is enabled for level {@link Level#WARN WARN}, {@code false}
2385 * otherwise.
2386 */
2387 boolean isWarnEnabled();
2388
2389 /**
2390 * Checks whether this Logger is enabled for the {@link Level#WARN WARN} Level.
2391 *
2392 * @param marker The Marker to check
2393 * @return boolean - {@code true} if this Logger is enabled for level {@link Level#WARN WARN}, {@code false}
2394 * otherwise.
2395 */
2396 boolean isWarnEnabled(Marker marker);
2397
2398 /**
2399 * Logs a message with the specific Marker at the given level.
2400 *
2401 * @param level the logging level
2402 * @param marker the marker data specific to this log statement
2403 * @param message the message string to be logged
2404 */
2405 void log(Level level, Marker marker, Message message);
2406
2407 /**
2408 * Logs a message with the specific Marker at the given level.
2409 *
2410 * @param level the logging level
2411 * @param marker the marker data specific to this log statement
2412 * @param message the message string to be logged
2413 * @param throwable A Throwable or null.
2414 */
2415 void log(Level level, Marker marker, Message message, Throwable throwable);
2416
2417 /**
2418 * Logs a message which is only to be constructed if the logging level is the specified level with the specified
2419 * Marker. The {@code MessageSupplier} may or may not use the {@link MessageFactory} to construct the
2420 * {@code Message}.
2421 *
2422 * @param level the logging level
2423 * @param marker the marker data specific to this log statement
2424 * @param messageSupplier A function, which when called, produces the desired log message.
2425 * @since 2.4
2426 */
2427 void log(Level level, Marker marker, MessageSupplier messageSupplier);
2428
2429 /**
2430 * Logs a message (only to be constructed if the logging level is the specified level) with the specified Marker and
2431 * including the stack log of the {@link Throwable} <code>throwable</code> passed as parameter. The {@code MessageSupplier}
2432 * may or may not use the {@link MessageFactory} to construct the {@code Message}.
2433 *
2434 * @param level the logging level
2435 * @param marker the marker data specific to this log statement
2436 * @param messageSupplier A function, which when called, produces the desired log message.
2437 * @param throwable A Throwable or null.
2438 * @since 2.4
2439 */
2440 void log(Level level, Marker marker, MessageSupplier messageSupplier, Throwable throwable);
2441
2442 /**
2443 * Logs a message CharSequence with the given level.
2444 *
2445 * @param level the logging level
2446 * @param marker the marker data specific to this log statement
2447 * @param message the message CharSequence to log.
2448 */
2449 void log(Level level, Marker marker, CharSequence message);
2450
2451 /**
2452 * Logs a CharSequence at the given level including the stack trace of the {@link Throwable} <code>throwable</code> passed as
2453 * parameter.
2454 *
2455 * @param level the logging level
2456 * @param marker the marker data specific to this log statement
2457 * @param message the message CharSequence to log.
2458 * @param throwable the {@code Throwable} to log, including its stack trace.
2459 */
2460 void log(Level level, Marker marker, CharSequence message, Throwable throwable);
2461
2462 /**
2463 * Logs a message object with the given level.
2464 *
2465 * @param level the logging level
2466 * @param marker the marker data specific to this log statement
2467 * @param message the message object to log.
2468 */
2469 void log(Level level, Marker marker, Object message);
2470
2471 /**
2472 * Logs a message at the given level including the stack trace of the {@link Throwable} <code>throwable</code> passed as
2473 * parameter.
2474 *
2475 * @param level the logging level
2476 * @param marker the marker data specific to this log statement
2477 * @param message the message to log.
2478 * @param throwable the {@code Throwable} to log, including its stack trace.
2479 */
2480 void log(Level level, Marker marker, Object message, Throwable throwable);
2481
2482 /**
2483 * Logs a message object with the given level.
2484 *
2485 * @param level the logging level
2486 * @param marker the marker data specific to this log statement
2487 * @param message the message object to log.
2488 */
2489 void log(Level level, Marker marker, String message);
2490
2491 /**
2492 * Logs a message with parameters at the given level.
2493 *
2494 * @param level the logging level
2495 * @param marker the marker data specific to this log statement
2496 * @param message the message to log; the format depends on the message factory.
2497 * @param params parameters to the message.
2498 * @see #getMessageFactory()
2499 */
2500 void log(Level level, Marker marker, String message, Object... params);
2501
2502 /**
2503 * Logs a message with parameters which are only to be constructed if the logging level is the specified level.
2504 *
2505 * @param level the logging level
2506 * @param marker the marker data specific to this log statement
2507 * @param message the message to log; the format depends on the message factory.
2508 * @param paramSuppliers An array of functions, which when called, produce the desired log message parameters.
2509 * @since 2.4
2510 */
2511 void log(Level level, Marker marker, String message, Supplier<?>... paramSuppliers);
2512
2513 /**
2514 * Logs a message at the given level including the stack trace of the {@link Throwable} <code>throwable</code> passed as
2515 * parameter.
2516 *
2517 * @param level the logging level
2518 * @param marker the marker data specific to this log statement
2519 * @param message the message to log.
2520 * @param throwable the {@code Throwable} to log, including its stack trace.
2521 */
2522 void log(Level level, Marker marker, String message, Throwable throwable);
2523
2524 /**
2525 * Logs a message (only to be constructed if the logging level is the specified level) with the specified Marker.
2526 *
2527 * @param level the logging level
2528 * @param marker the marker data specific to this log statement
2529 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
2530 * message factory.
2531 * @since 2.4
2532 */
2533 void log(Level level, Marker marker, Supplier<?> messageSupplier);
2534
2535 /**
2536 * Logs a message (only to be constructed if the logging level is the specified level) with the specified Marker and
2537 * including the stack log of the {@link Throwable} <code>throwable</code> passed as parameter.
2538 *
2539 * @param level the logging level
2540 * @param marker the marker data specific to this log statement
2541 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
2542 * message factory.
2543 * @param throwable A Throwable or null.
2544 * @since 2.4
2545 */
2546 void log(Level level, Marker marker, Supplier<?> messageSupplier, Throwable throwable);
2547
2548 /**
2549 * Logs a message with the specific Marker at the given level.
2550 *
2551 * @param level the logging level
2552 * @param message the message string to be logged
2553 */
2554 void log(Level level, Message message);
2555
2556 /**
2557 * Logs a message with the specific Marker at the given level.
2558 *
2559 * @param level the logging level
2560 * @param message the message string to be logged
2561 * @param throwable A Throwable or null.
2562 */
2563 void log(Level level, Message message, Throwable throwable);
2564
2565 /**
2566 * Logs a message which is only to be constructed if the logging level is the specified level. The
2567 * {@code MessageSupplier} may or may not use the {@link MessageFactory} to construct the {@code Message}.
2568 *
2569 * @param level the logging level
2570 * @param messageSupplier A function, which when called, produces the desired log message.
2571 * @since 2.4
2572 */
2573 void log(Level level, MessageSupplier messageSupplier);
2574
2575 /**
2576 * Logs a message (only to be constructed if the logging level is the specified level) including the stack log of
2577 * the {@link Throwable} <code>throwable</code> passed as parameter. The {@code MessageSupplier} may or may not use the
2578 * {@link MessageFactory} to construct the {@code Message}.
2579 *
2580 * @param level the logging level
2581 * @param messageSupplier A function, which when called, produces the desired log message.
2582 * @param throwable the {@code Throwable} to log, including its stack log.
2583 * @since 2.4
2584 */
2585 void log(Level level, MessageSupplier messageSupplier, Throwable throwable);
2586
2587 /**
2588 * Logs a message CharSequence with the given level.
2589 *
2590 * @param level the logging level
2591 * @param message the message CharSequence to log.
2592 */
2593 void log(Level level, CharSequence message);
2594
2595 /**
2596 * Logs a CharSequence at the given level including the stack trace of the {@link Throwable} <code>throwable</code> passed as
2597 * parameter.
2598 *
2599 * @param level the logging level
2600 * @param message the message CharSequence to log.
2601 * @param throwable the {@code Throwable} to log, including its stack trace.
2602 */
2603 void log(Level level, CharSequence message, Throwable throwable);
2604
2605 /**
2606 * Logs a message object with the given level.
2607 *
2608 * @param level the logging level
2609 * @param message the message object to log.
2610 */
2611 void log(Level level, Object message);
2612
2613 /**
2614 * Logs a message at the given level including the stack trace of the {@link Throwable} <code>throwable</code> passed as
2615 * parameter.
2616 *
2617 * @param level the logging level
2618 * @param message the message to log.
2619 * @param throwable the {@code Throwable} to log, including its stack trace.
2620 */
2621 void log(Level level, Object message, Throwable throwable);
2622
2623 /**
2624 * Logs a message object with the given level.
2625 *
2626 * @param level the logging level
2627 * @param message the message string to log.
2628 */
2629 void log(Level level, String message);
2630
2631 /**
2632 * Logs a message with parameters at the given level.
2633 *
2634 * @param level the logging level
2635 * @param message the message to log; the format depends on the message factory.
2636 * @param params parameters to the message.
2637 * @see #getMessageFactory()
2638 */
2639 void log(Level level, String message, Object... params);
2640
2641 /**
2642 * Logs a message with parameters which are only to be constructed if the logging level is the specified level.
2643 *
2644 * @param level the logging level
2645 * @param message the message to log; the format depends on the message factory.
2646 * @param paramSuppliers An array of functions, which when called, produce the desired log message parameters.
2647 * @since 2.4
2648 */
2649 void log(Level level, String message, Supplier<?>... paramSuppliers);
2650
2651 /**
2652 * Logs a message at the given level including the stack trace of the {@link Throwable} <code>throwable</code> passed as
2653 * parameter.
2654 *
2655 * @param level the logging level
2656 * @param message the message to log.
2657 * @param throwable the {@code Throwable} to log, including its stack trace.
2658 */
2659 void log(Level level, String message, Throwable throwable);
2660
2661 /**
2662 * Logs a message which is only to be constructed if the logging level is the specified level.
2663 *
2664 * @param level the logging level
2665 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
2666 * message factory.
2667 * @since 2.4
2668 */
2669 void log(Level level, Supplier<?> messageSupplier);
2670
2671 /**
2672 * Logs a message (only to be constructed if the logging level is the specified level) including the stack log of
2673 * the {@link Throwable} <code>throwable</code> passed as parameter.
2674 *
2675 * @param level the logging level
2676 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
2677 * message factory.
2678 * @param throwable the {@code Throwable} to log, including its stack log.
2679 * @since 2.4
2680 */
2681 void log(Level level, Supplier<?> messageSupplier, Throwable throwable);
2682
2683 /**
2684 * Logs a message with parameters at the specified level.
2685 *
2686 * @param level the logging level
2687 * @param marker the marker data specific to this log statement
2688 * @param message the message to log; the format depends on the message factory.
2689 * @param p0 parameter to the message.
2690 */
2691 void log(Level level, Marker marker, String message, Object p0);
2692
2693 /**
2694 * Logs a message with parameters at the specified level.
2695 *
2696 * @param level the logging level
2697 * @param marker the marker data specific to this log statement
2698 * @param message the message to log; the format depends on the message factory.
2699 * @param p0 parameter to the message.
2700 * @param p1 parameter to the message.
2701 */
2702 void log(Level level, Marker marker, String message, Object p0, Object p1);
2703
2704 /**
2705 * Logs a message with parameters at the specified level.
2706 *
2707 * @param level the logging level
2708 * @param marker the marker data specific to this log statement
2709 * @param message the message to log; the format depends on the message factory.
2710 * @param p0 parameter to the message.
2711 * @param p1 parameter to the message.
2712 * @param p2 parameter to the message.
2713 */
2714 void log(Level level, Marker marker, String message, Object p0, Object p1, Object p2);
2715
2716 /**
2717 * Logs a message with parameters at the specified level.
2718 *
2719 * @param level the logging level
2720 * @param marker the marker data specific to this log statement
2721 * @param message the message to log; the format depends on the message factory.
2722 * @param p0 parameter to the message.
2723 * @param p1 parameter to the message.
2724 * @param p2 parameter to the message.
2725 * @param p3 parameter to the message.
2726 */
2727 void log(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3);
2728
2729 /**
2730 * Logs a message with parameters at the specified level.
2731 *
2732 * @param level the logging level
2733 * @param marker the marker data specific to this log statement
2734 * @param message the message to log; the format depends on the message factory.
2735 * @param p0 parameter to the message.
2736 * @param p1 parameter to the message.
2737 * @param p2 parameter to the message.
2738 * @param p3 parameter to the message.
2739 * @param p4 parameter to the message.
2740 */
2741 void log(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4);
2742
2743 /**
2744 * Logs a message with parameters at the specified level.
2745 *
2746 * @param level the logging level
2747 * @param marker the marker data specific to this log statement
2748 * @param message the message to log; the format depends on the message factory.
2749 * @param p0 parameter to the message.
2750 * @param p1 parameter to the message.
2751 * @param p2 parameter to the message.
2752 * @param p3 parameter to the message.
2753 * @param p4 parameter to the message.
2754 * @param p5 parameter to the message.
2755 */
2756 void log(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5);
2757
2758 /**
2759 * Logs a message with parameters at the specified level.
2760 *
2761 * @param level the logging level
2762 * @param marker the marker data specific to this log statement
2763 * @param message the message to log; the format depends on the message factory.
2764 * @param p0 parameter to the message.
2765 * @param p1 parameter to the message.
2766 * @param p2 parameter to the message.
2767 * @param p3 parameter to the message.
2768 * @param p4 parameter to the message.
2769 * @param p5 parameter to the message.
2770 * @param p6 parameter to the message.
2771 */
2772 void log(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5,
2773 Object p6);
2774
2775 /**
2776 * Logs a message with parameters at the specified level.
2777 *
2778 * @param level the logging level
2779 * @param marker the marker data specific to this log statement
2780 * @param message the message to log; the format depends on the message factory.
2781 * @param p0 parameter to the message.
2782 * @param p1 parameter to the message.
2783 * @param p2 parameter to the message.
2784 * @param p3 parameter to the message.
2785 * @param p4 parameter to the message.
2786 * @param p5 parameter to the message.
2787 * @param p6 parameter to the message.
2788 * @param p7 parameter to the message.
2789 */
2790 void log(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
2791 Object p7);
2792
2793 /**
2794 * Logs a message with parameters at the specified level.
2795 *
2796 * @param level the logging level
2797 * @param marker the marker data specific to this log statement
2798 * @param message the message to log; the format depends on the message factory.
2799 * @param p0 parameter to the message.
2800 * @param p1 parameter to the message.
2801 * @param p2 parameter to the message.
2802 * @param p3 parameter to the message.
2803 * @param p4 parameter to the message.
2804 * @param p5 parameter to the message.
2805 * @param p6 parameter to the message.
2806 * @param p7 parameter to the message.
2807 * @param p8 parameter to the message.
2808 */
2809 void log(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
2810 Object p7, Object p8);
2811
2812 /**
2813 * Logs a message with parameters at the specified level.
2814 *
2815 * @param level the logging level
2816 * @param marker the marker data specific to this log statement
2817 * @param message the message to log; the format depends on the message factory.
2818 * @param p0 parameter to the message.
2819 * @param p1 parameter to the message.
2820 * @param p2 parameter to the message.
2821 * @param p3 parameter to the message.
2822 * @param p4 parameter to the message.
2823 * @param p5 parameter to the message.
2824 * @param p6 parameter to the message.
2825 * @param p7 parameter to the message.
2826 * @param p8 parameter to the message.
2827 * @param p9 parameter to the message.
2828 */
2829 void log(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
2830 Object p7, Object p8, Object p9);
2831
2832 /**
2833 * Logs a message with parameters at the specified level.
2834 *
2835 * @param level the logging level
2836 * @param message the message to log; the format depends on the message factory.
2837 * @param p0 parameter to the message.
2838 */
2839 void log(Level level, String message, Object p0);
2840
2841 /**
2842 * Logs a message with parameters at the specified level.
2843 *
2844 * @param level the logging level
2845 * @param message the message to log; the format depends on the message factory.
2846 * @param p0 parameter to the message.
2847 * @param p1 parameter to the message.
2848 */
2849 void log(Level level, String message, Object p0, Object p1);
2850
2851 /**
2852 * Logs a message with parameters at the specified level.
2853 *
2854 * @param level the logging level
2855 * @param message the message to log; the format depends on the message factory.
2856 * @param p0 parameter to the message.
2857 * @param p1 parameter to the message.
2858 * @param p2 parameter to the message.
2859 */
2860 void log(Level level, String message, Object p0, Object p1, Object p2);
2861
2862 /**
2863 * Logs a message with parameters at the specified level.
2864 *
2865 * @param level the logging level
2866 * @param message the message to log; the format depends on the message factory.
2867 * @param p0 parameter to the message.
2868 * @param p1 parameter to the message.
2869 * @param p2 parameter to the message.
2870 * @param p3 parameter to the message.
2871 */
2872 void log(Level level, String message, Object p0, Object p1, Object p2, Object p3);
2873
2874 /**
2875 * Logs a message with parameters at the specified level.
2876 *
2877 * @param level the logging level
2878 * @param message the message to log; the format depends on the message factory.
2879 * @param p0 parameter to the message.
2880 * @param p1 parameter to the message.
2881 * @param p2 parameter to the message.
2882 * @param p3 parameter to the message.
2883 * @param p4 parameter to the message.
2884 */
2885 void log(Level level, String message, Object p0, Object p1, Object p2, Object p3, Object p4);
2886
2887 /**
2888 * Logs a message with parameters at the specified level.
2889 *
2890 * @param level the logging level
2891 * @param message the message to log; the format depends on the message factory.
2892 * @param p0 parameter to the message.
2893 * @param p1 parameter to the message.
2894 * @param p2 parameter to the message.
2895 * @param p3 parameter to the message.
2896 * @param p4 parameter to the message.
2897 * @param p5 parameter to the message.
2898 */
2899 void log(Level level, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5);
2900
2901 /**
2902 * Logs a message with parameters at the specified level.
2903 *
2904 * @param level the logging level
2905 * @param message the message to log; the format depends on the message factory.
2906 * @param p0 parameter to the message.
2907 * @param p1 parameter to the message.
2908 * @param p2 parameter to the message.
2909 * @param p3 parameter to the message.
2910 * @param p4 parameter to the message.
2911 * @param p5 parameter to the message.
2912 * @param p6 parameter to the message.
2913 */
2914 void log(Level level, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6);
2915
2916 /**
2917 * Logs a message with parameters at the specified level.
2918 *
2919 * @param level the logging level
2920 * @param message the message to log; the format depends on the message factory.
2921 * @param p0 parameter to the message.
2922 * @param p1 parameter to the message.
2923 * @param p2 parameter to the message.
2924 * @param p3 parameter to the message.
2925 * @param p4 parameter to the message.
2926 * @param p5 parameter to the message.
2927 * @param p6 parameter to the message.
2928 * @param p7 parameter to the message.
2929 */
2930 void log(Level level, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7);
2931
2932 /**
2933 * Logs a message with parameters at the specified level.
2934 *
2935 * @param level the logging level
2936 * @param message the message to log; the format depends on the message factory.
2937 * @param p0 parameter to the message.
2938 * @param p1 parameter to the message.
2939 * @param p2 parameter to the message.
2940 * @param p3 parameter to the message.
2941 * @param p4 parameter to the message.
2942 * @param p5 parameter to the message.
2943 * @param p6 parameter to the message.
2944 * @param p7 parameter to the message.
2945 * @param p8 parameter to the message.
2946 */
2947 void log(Level level, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7,
2948 Object p8);
2949
2950 /**
2951 * Logs a message with parameters at the specified level.
2952 *
2953 * @param level the logging level
2954 * @param message the message to log; the format depends on the message factory.
2955 * @param p0 parameter to the message.
2956 * @param p1 parameter to the message.
2957 * @param p2 parameter to the message.
2958 * @param p3 parameter to the message.
2959 * @param p4 parameter to the message.
2960 * @param p5 parameter to the message.
2961 * @param p6 parameter to the message.
2962 * @param p7 parameter to the message.
2963 * @param p8 parameter to the message.
2964 * @param p9 parameter to the message.
2965 */
2966 void log(Level level, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7,
2967 Object p8, Object p9);
2968
2969 /**
2970 * Logs a formatted message using the specified format string and arguments.
2971 *
2972 * @param level The logging Level.
2973 * @param marker the marker data specific to this log statement.
2974 * @param format The format String.
2975 * @param params Arguments specified by the format.
2976 */
2977 void printf(Level level, Marker marker, String format, Object... params);
2978
2979 /**
2980 * Logs a formatted message using the specified format string and arguments.
2981 *
2982 * @param level The logging Level.
2983 * @param format The format String.
2984 * @param params Arguments specified by the format.
2985 */
2986 void printf(Level level, String format, Object... params);
2987
2988 /**
2989 * Logs a {@link Throwable} to be thrown. This may be coded as:
2990 *
2991 * <pre>
2992 * throw logger.throwing(Level.DEBUG, myException);
2993 * </pre>
2994 *
2995 * @param <T> the Throwable type.
2996 * @param level The logging Level.
2997 * @param throwable The Throwable.
2998 * @return the Throwable.
2999 */
3000 <T extends Throwable> T throwing(Level level, T throwable);
3001
3002 /**
3003 * Logs a {@link Throwable} to be thrown at the {@link Level#ERROR ERROR} level.
3004 * This may be coded as:
3005 *
3006 * <pre>
3007 * throw logger.throwing(myException);
3008 * </pre>
3009 *
3010 * @param <T> the Throwable type.
3011 * @param throwable The Throwable.
3012 * @return the Throwable.
3013 */
3014 <T extends Throwable> T throwing(T throwable);
3015
3016 /**
3017 * Logs a message with the specific Marker at the {@link Level#TRACE TRACE} level.
3018 *
3019 * @param marker the marker data specific to this log statement
3020 * @param message the message string to be logged
3021 */
3022 void trace(Marker marker, Message message);
3023
3024 /**
3025 * Logs a message with the specific Marker at the {@link Level#TRACE TRACE} level.
3026 *
3027 * @param marker the marker data specific to this log statement
3028 * @param message the message string to be logged
3029 * @param throwable A Throwable or null.
3030 */
3031 void trace(Marker marker, Message message, Throwable throwable);
3032
3033 /**
3034 * Logs a message which is only to be constructed if the logging level is the {@link Level#TRACE TRACE} level with
3035 * the specified Marker. The {@code MessageSupplier} may or may not use the {@link MessageFactory} to construct the
3036 * {@code Message}.
3037 *
3038 * @param marker the marker data specific to this log statement
3039 * @param messageSupplier A function, which when called, produces the desired log message.
3040 * @since 2.4
3041 */
3042 void trace(Marker marker, MessageSupplier messageSupplier);
3043
3044 /**
3045 * Logs a message (only to be constructed if the logging level is the {@link Level#TRACE TRACE} level) with the
3046 * specified Marker and including the stack trace of the {@link Throwable} <code>throwable</code> passed as parameter. The
3047 * {@code MessageSupplier} may or may not use the {@link MessageFactory} to construct the {@code Message}.
3048 *
3049 * @param marker the marker data specific to this log statement
3050 * @param messageSupplier A function, which when called, produces the desired log message.
3051 * @param throwable A Throwable or null.
3052 * @since 2.4
3053 */
3054 void trace(Marker marker, MessageSupplier messageSupplier, Throwable throwable);
3055
3056 /**
3057 * Logs a message CharSequence with the {@link Level#TRACE TRACE} level.
3058 *
3059 * @param marker the marker data specific to this log statement
3060 * @param message the message CharSequence to log.
3061 */
3062 void trace(Marker marker, CharSequence message);
3063
3064 /**
3065 * Logs a CharSequence at the {@link Level#TRACE TRACE} level including the stack trace of the {@link Throwable}
3066 * <code>throwable</code> passed as parameter.
3067 *
3068 * @param marker the marker data specific to this log statement
3069 * @param message the message CharSequence to log.
3070 * @param throwable the {@code Throwable} to log, including its stack trace.
3071 * @see #debug(String)
3072 */
3073 void trace(Marker marker, CharSequence message, Throwable throwable);
3074
3075 /**
3076 * Logs a message object with the {@link Level#TRACE TRACE} level.
3077 *
3078 * @param marker the marker data specific to this log statement
3079 * @param message the message object to log.
3080 */
3081 void trace(Marker marker, Object message);
3082
3083 /**
3084 * Logs a message at the {@link Level#TRACE TRACE} level including the stack trace of the {@link Throwable}
3085 * <code>throwable</code> passed as parameter.
3086 *
3087 * @param marker the marker data specific to this log statement
3088 * @param message the message object to log.
3089 * @param throwable the {@code Throwable} to log, including its stack trace.
3090 * @see #debug(String)
3091 */
3092 void trace(Marker marker, Object message, Throwable throwable);
3093
3094 /**
3095 * Logs a message object with the {@link Level#TRACE TRACE} level.
3096 *
3097 * @param marker the marker data specific to this log statement
3098 * @param message the message string to log.
3099 */
3100 void trace(Marker marker, String message);
3101
3102 /**
3103 * Logs a message with parameters at the {@link Level#TRACE TRACE} level.
3104 *
3105 * @param marker the marker data specific to this log statement
3106 * @param message the message to log; the format depends on the message factory.
3107 * @param params parameters to the message.
3108 * @see #getMessageFactory()
3109 */
3110 void trace(Marker marker, String message, Object... params);
3111
3112 /**
3113 * Logs a message with parameters which are only to be constructed if the logging level is the {@link Level#TRACE
3114 * TRACE} level.
3115 *
3116 * @param marker the marker data specific to this log statement
3117 * @param message the message to log; the format depends on the message factory.
3118 * @param paramSuppliers An array of functions, which when called, produce the desired log message parameters.
3119 * @since 2.4
3120 */
3121 void trace(Marker marker, String message, Supplier<?>... paramSuppliers);
3122
3123 /**
3124 * Logs a message at the {@link Level#TRACE TRACE} level including the stack trace of the {@link Throwable}
3125 * <code>throwable</code> passed as parameter.
3126 *
3127 * @param marker the marker data specific to this log statement
3128 * @param message the message object to log.
3129 * @param throwable the {@code Throwable} to log, including its stack trace.
3130 * @see #debug(String)
3131 */
3132 void trace(Marker marker, String message, Throwable throwable);
3133
3134 /**
3135 * Logs a message which is only to be constructed if the logging level is the {@link Level#TRACE TRACE} level with
3136 * the specified Marker.
3137 *
3138 * @param marker the marker data specific to this log statement
3139 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
3140 * message factory.
3141 * @since 2.4
3142 */
3143 void trace(Marker marker, Supplier<?> messageSupplier);
3144
3145 /**
3146 * Logs a message (only to be constructed if the logging level is the {@link Level#TRACE TRACE} level) with the
3147 * specified Marker and including the stack trace of the {@link Throwable} <code>throwable</code> passed as parameter.
3148 *
3149 * @param marker the marker data specific to this log statement
3150 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
3151 * message factory.
3152 * @param throwable A Throwable or null.
3153 * @since 2.4
3154 */
3155 void trace(Marker marker, Supplier<?> messageSupplier, Throwable throwable);
3156
3157 /**
3158 * Logs a message with the specific Marker at the {@link Level#TRACE TRACE} level.
3159 *
3160 * @param message the message string to be logged
3161 */
3162 void trace(Message message);
3163
3164 /**
3165 * Logs a message with the specific Marker at the {@link Level#TRACE TRACE} level.
3166 *
3167 * @param message the message string to be logged
3168 * @param throwable A Throwable or null.
3169 */
3170 void trace(Message message, Throwable throwable);
3171
3172 /**
3173 * Logs a message which is only to be constructed if the logging level is the {@link Level#TRACE TRACE} level. The
3174 * {@code MessageSupplier} may or may not use the {@link MessageFactory} to construct the {@code Message}.
3175 *
3176 * @param messageSupplier A function, which when called, produces the desired log message.
3177 * @since 2.4
3178 */
3179 void trace(MessageSupplier messageSupplier);
3180
3181 /**
3182 * Logs a message (only to be constructed if the logging level is the {@link Level#TRACE TRACE} level) including the
3183 * stack trace of the {@link Throwable} <code>throwable</code> passed as parameter. The {@code MessageSupplier} may or may
3184 * not use the {@link MessageFactory} to construct the {@code Message}.
3185 *
3186 * @param messageSupplier A function, which when called, produces the desired log message.
3187 * @param throwable the {@code Throwable} to log, including its stack trace.
3188 * @since 2.4
3189 */
3190 void trace(MessageSupplier messageSupplier, Throwable throwable);
3191
3192 /**
3193 * Logs a message CharSequence with the {@link Level#TRACE TRACE} level.
3194 *
3195 * @param message the message CharSequence to log.
3196 */
3197 void trace(CharSequence message);
3198
3199 /**
3200 * Logs a CharSequence at the {@link Level#TRACE TRACE} level including the stack trace of the {@link Throwable}
3201 * <code>throwable</code> passed as parameter.
3202 *
3203 * @param message the message CharSequence to log.
3204 * @param throwable the {@code Throwable} to log, including its stack trace.
3205 * @see #debug(String)
3206 */
3207 void trace(CharSequence message, Throwable throwable);
3208
3209 /**
3210 * Logs a message object with the {@link Level#TRACE TRACE} level.
3211 *
3212 * @param message the message object to log.
3213 */
3214 void trace(Object message);
3215
3216 /**
3217 * Logs a message at the {@link Level#TRACE TRACE} level including the stack trace of the {@link Throwable}
3218 * <code>throwable</code> passed as parameter.
3219 *
3220 * @param message the message object to log.
3221 * @param throwable the {@code Throwable} to log, including its stack trace.
3222 * @see #debug(String)
3223 */
3224 void trace(Object message, Throwable throwable);
3225
3226 /**
3227 * Logs a message object with the {@link Level#TRACE TRACE} level.
3228 *
3229 * @param message the message string to log.
3230 */
3231 void trace(String message);
3232
3233 /**
3234 * Logs a message with parameters at the {@link Level#TRACE TRACE} level.
3235 *
3236 * @param message the message to log; the format depends on the message factory.
3237 * @param params parameters to the message.
3238 * @see #getMessageFactory()
3239 */
3240 void trace(String message, Object... params);
3241
3242 /**
3243 * Logs a message with parameters which are only to be constructed if the logging level is the {@link Level#TRACE
3244 * TRACE} level.
3245 *
3246 * @param message the message to log; the format depends on the message factory.
3247 * @param paramSuppliers An array of functions, which when called, produce the desired log message parameters.
3248 * @since 2.4
3249 */
3250 void trace(String message, Supplier<?>... paramSuppliers);
3251
3252 /**
3253 * Logs a message at the {@link Level#TRACE TRACE} level including the stack trace of the {@link Throwable}
3254 * <code>throwable</code> passed as parameter.
3255 *
3256 * @param message the message object to log.
3257 * @param throwable the {@code Throwable} to log, including its stack trace.
3258 * @see #debug(String)
3259 */
3260 void trace(String message, Throwable throwable);
3261
3262 /**
3263 * Logs a message which is only to be constructed if the logging level is the {@link Level#TRACE TRACE} level.
3264 *
3265 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
3266 * message factory.
3267 * @since 2.4
3268 */
3269 void trace(Supplier<?> messageSupplier);
3270
3271 /**
3272 * Logs a message (only to be constructed if the logging level is the {@link Level#TRACE TRACE} level) including the
3273 * stack trace of the {@link Throwable} <code>throwable</code> passed as parameter.
3274 *
3275 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
3276 * message factory.
3277 * @param throwable the {@code Throwable} to log, including its stack trace.
3278 * @since 2.4
3279 */
3280 void trace(Supplier<?> messageSupplier, Throwable throwable);
3281
3282 /**
3283 * Logs a message with parameters at trace level.
3284 *
3285 * @param marker the marker data specific to this log statement
3286 * @param message the message to log; the format depends on the message factory.
3287 * @param p0 parameter to the message.
3288 */
3289 void trace(Marker marker, String message, Object p0);
3290
3291 /**
3292 * Logs a message with parameters at trace level.
3293 *
3294 * @param marker the marker data specific to this log statement
3295 * @param message the message to log; the format depends on the message factory.
3296 * @param p0 parameter to the message.
3297 * @param p1 parameter to the message.
3298 */
3299 void trace(Marker marker, String message, Object p0, Object p1);
3300
3301 /**
3302 * Logs a message with parameters at trace level.
3303 *
3304 * @param marker the marker data specific to this log statement
3305 * @param message the message to log; the format depends on the message factory.
3306 * @param p0 parameter to the message.
3307 * @param p1 parameter to the message.
3308 * @param p2 parameter to the message.
3309 */
3310 void trace(Marker marker, String message, Object p0, Object p1, Object p2);
3311
3312 /**
3313 * Logs a message with parameters at trace level.
3314 *
3315 * @param marker the marker data specific to this log statement
3316 * @param message the message to log; the format depends on the message factory.
3317 * @param p0 parameter to the message.
3318 * @param p1 parameter to the message.
3319 * @param p2 parameter to the message.
3320 * @param p3 parameter to the message.
3321 */
3322 void trace(Marker marker, String message, Object p0, Object p1, Object p2, Object p3);
3323
3324 /**
3325 * Logs a message with parameters at trace level.
3326 *
3327 * @param marker the marker data specific to this log statement
3328 * @param message the message to log; the format depends on the message factory.
3329 * @param p0 parameter to the message.
3330 * @param p1 parameter to the message.
3331 * @param p2 parameter to the message.
3332 * @param p3 parameter to the message.
3333 * @param p4 parameter to the message.
3334 */
3335 void trace(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4);
3336
3337 /**
3338 * Logs a message with parameters at trace level.
3339 *
3340 * @param marker the marker data specific to this log statement
3341 * @param message the message to log; the format depends on the message factory.
3342 * @param p0 parameter to the message.
3343 * @param p1 parameter to the message.
3344 * @param p2 parameter to the message.
3345 * @param p3 parameter to the message.
3346 * @param p4 parameter to the message.
3347 * @param p5 parameter to the message.
3348 */
3349 void trace(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5);
3350
3351 /**
3352 * Logs a message with parameters at trace level.
3353 *
3354 * @param marker the marker data specific to this log statement
3355 * @param message the message to log; the format depends on the message factory.
3356 * @param p0 parameter to the message.
3357 * @param p1 parameter to the message.
3358 * @param p2 parameter to the message.
3359 * @param p3 parameter to the message.
3360 * @param p4 parameter to the message.
3361 * @param p5 parameter to the message.
3362 * @param p6 parameter to the message.
3363 */
3364 void trace(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5,
3365 Object p6);
3366
3367 /**
3368 * Logs a message with parameters at trace level.
3369 *
3370 * @param marker the marker data specific to this log statement
3371 * @param message the message to log; the format depends on the message factory.
3372 * @param p0 parameter to the message.
3373 * @param p1 parameter to the message.
3374 * @param p2 parameter to the message.
3375 * @param p3 parameter to the message.
3376 * @param p4 parameter to the message.
3377 * @param p5 parameter to the message.
3378 * @param p6 parameter to the message.
3379 * @param p7 parameter to the message.
3380 */
3381 void trace(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
3382 Object p7);
3383
3384 /**
3385 * Logs a message with parameters at trace level.
3386 *
3387 * @param marker the marker data specific to this log statement
3388 * @param message the message to log; the format depends on the message factory.
3389 * @param p0 parameter to the message.
3390 * @param p1 parameter to the message.
3391 * @param p2 parameter to the message.
3392 * @param p3 parameter to the message.
3393 * @param p4 parameter to the message.
3394 * @param p5 parameter to the message.
3395 * @param p6 parameter to the message.
3396 * @param p7 parameter to the message.
3397 * @param p8 parameter to the message.
3398 */
3399 void trace(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
3400 Object p7, Object p8);
3401
3402 /**
3403 * Logs a message with parameters at trace level.
3404 *
3405 * @param marker the marker data specific to this log statement
3406 * @param message the message to log; the format depends on the message factory.
3407 * @param p0 parameter to the message.
3408 * @param p1 parameter to the message.
3409 * @param p2 parameter to the message.
3410 * @param p3 parameter to the message.
3411 * @param p4 parameter to the message.
3412 * @param p5 parameter to the message.
3413 * @param p6 parameter to the message.
3414 * @param p7 parameter to the message.
3415 * @param p8 parameter to the message.
3416 * @param p9 parameter to the message.
3417 */
3418 void trace(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
3419 Object p7, Object p8, Object p9);
3420
3421 /**
3422 * Logs a message with parameters at trace level.
3423 *
3424 * @param message the message to log; the format depends on the message factory.
3425 * @param p0 parameter to the message.
3426 */
3427 void trace(String message, Object p0);
3428
3429 /**
3430 * Logs a message with parameters at trace level.
3431 *
3432 * @param message the message to log; the format depends on the message factory.
3433 * @param p0 parameter to the message.
3434 * @param p1 parameter to the message.
3435 */
3436 void trace(String message, Object p0, Object p1);
3437
3438 /**
3439 * Logs a message with parameters at trace level.
3440 *
3441 * @param message the message to log; the format depends on the message factory.
3442 * @param p0 parameter to the message.
3443 * @param p1 parameter to the message.
3444 * @param p2 parameter to the message.
3445 */
3446 void trace(String message, Object p0, Object p1, Object p2);
3447
3448 /**
3449 * Logs a message with parameters at trace level.
3450 *
3451 * @param message the message to log; the format depends on the message factory.
3452 * @param p0 parameter to the message.
3453 * @param p1 parameter to the message.
3454 * @param p2 parameter to the message.
3455 * @param p3 parameter to the message.
3456 */
3457 void trace(String message, Object p0, Object p1, Object p2, Object p3);
3458
3459 /**
3460 * Logs a message with parameters at trace level.
3461 *
3462 * @param message the message to log; the format depends on the message factory.
3463 * @param p0 parameter to the message.
3464 * @param p1 parameter to the message.
3465 * @param p2 parameter to the message.
3466 * @param p3 parameter to the message.
3467 * @param p4 parameter to the message.
3468 */
3469 void trace(String message, Object p0, Object p1, Object p2, Object p3, Object p4);
3470
3471 /**
3472 * Logs a message with parameters at trace level.
3473 *
3474 * @param message the message to log; the format depends on the message factory.
3475 * @param p0 parameter to the message.
3476 * @param p1 parameter to the message.
3477 * @param p2 parameter to the message.
3478 * @param p3 parameter to the message.
3479 * @param p4 parameter to the message.
3480 * @param p5 parameter to the message.
3481 */
3482 void trace(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5);
3483
3484 /**
3485 * Logs a message with parameters at trace level.
3486 *
3487 * @param message the message to log; the format depends on the message factory.
3488 * @param p0 parameter to the message.
3489 * @param p1 parameter to the message.
3490 * @param p2 parameter to the message.
3491 * @param p3 parameter to the message.
3492 * @param p4 parameter to the message.
3493 * @param p5 parameter to the message.
3494 * @param p6 parameter to the message.
3495 */
3496 void trace(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6);
3497
3498 /**
3499 * Logs a message with parameters at trace level.
3500 *
3501 * @param message the message to log; the format depends on the message factory.
3502 * @param p0 parameter to the message.
3503 * @param p1 parameter to the message.
3504 * @param p2 parameter to the message.
3505 * @param p3 parameter to the message.
3506 * @param p4 parameter to the message.
3507 * @param p5 parameter to the message.
3508 * @param p6 parameter to the message.
3509 * @param p7 parameter to the message.
3510 */
3511 void trace(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7);
3512
3513 /**
3514 * Logs a message with parameters at trace level.
3515 *
3516 * @param message the message to log; the format depends on the message factory.
3517 * @param p0 parameter to the message.
3518 * @param p1 parameter to the message.
3519 * @param p2 parameter to the message.
3520 * @param p3 parameter to the message.
3521 * @param p4 parameter to the message.
3522 * @param p5 parameter to the message.
3523 * @param p6 parameter to the message.
3524 * @param p7 parameter to the message.
3525 * @param p8 parameter to the message.
3526 */
3527 void trace(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7,
3528 Object p8);
3529
3530 /**
3531 * Logs a message with parameters at trace level.
3532 *
3533 * @param message the message to log; the format depends on the message factory.
3534 * @param p0 parameter to the message.
3535 * @param p1 parameter to the message.
3536 * @param p2 parameter to the message.
3537 * @param p3 parameter to the message.
3538 * @param p4 parameter to the message.
3539 * @param p5 parameter to the message.
3540 * @param p6 parameter to the message.
3541 * @param p7 parameter to the message.
3542 * @param p8 parameter to the message.
3543 * @param p9 parameter to the message.
3544 */
3545 void trace(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7,
3546 Object p8, Object p9);
3547
3548 /**
3549 * Logs entry to a method. Used when the method in question has no parameters or when the parameters should not be
3550 * logged.
3551 *
3552 * @return built message
3553 * @since 2.6
3554 */
3555 EntryMessage traceEntry();
3556
3557 /**
3558 * Logs entry to a method along with its parameters. For example,
3559 *
3560 * <pre>
3561 * public void doSomething(String foo, int bar) {
3562 * LOGGER.traceEntry("Parameters: {} and {}", foo, bar);
3563 * // do something
3564 * }
3565 * </pre>
3566 * or:
3567 * <pre>
3568 * public int doSomething(String foo, int bar) {
3569 * Message m = LOGGER.traceEntry("doSomething(foo={}, bar={})", foo, bar);
3570 * // do something
3571 * return traceExit(m, value);
3572 * }
3573 * </pre>
3574 *
3575 * @param format The format String for the parameters.
3576 * @param params The parameters to the method.
3577 * @return The built Message
3578 *
3579 * @since 2.6
3580 */
3581 EntryMessage traceEntry(String format, Object... params);
3582
3583 /**
3584 * Logs entry to a method along with its parameters. For example,
3585 *
3586 * <pre>
3587 * public void doSomething(Request foo) {
3588 * LOGGER.traceEntry(()->gson.toJson(foo));
3589 * // do something
3590 * }
3591 * </pre>
3592 *
3593 * @param paramSuppliers The Suppliers for the parameters to the method.
3594 * @return built message
3595 *
3596 * @since 2.6
3597 */
3598 EntryMessage traceEntry(Supplier<?>... paramSuppliers);
3599
3600 /**
3601 * Logs entry to a method along with its parameters. For example,
3602 *
3603 * <pre>
3604 * public void doSomething(String foo, int bar) {
3605 * LOGGER.traceEntry("Parameters: {} and {}", ()->gson.toJson(foo), ()-> bar);
3606 * // do something
3607 * }
3608 * </pre>
3609 *
3610 * @param format The format String for the parameters.
3611 * @param paramSuppliers The Suppliers for the parameters to the method.
3612 * @return built message
3613 *
3614 * @since 2.6
3615 */
3616 EntryMessage traceEntry(String format, Supplier<?>... paramSuppliers);
3617
3618 /**
3619 * Logs entry to a method using a Message to describe the parameters.
3620 * <pre>
3621 * public void doSomething(Request foo) {
3622 * LOGGER.traceEntry(new JsonMessage(foo));
3623 * // do something
3624 * }
3625 * </pre>
3626 * <p>
3627 * Avoid passing a {@code ReusableMessage} to this method (therefore, also avoid passing messages created by
3628 * calling {@code logger.getMessageFactory().newMessage("some message")}): Log4j will replace such messages with
3629 * an immutable message to prevent situations where the reused message instance is modified by subsequent calls to
3630 * the logger before the returned {@code EntryMessage} is fully processed.
3631 * </p>
3632 *
3633 * @param message The message. Avoid specifying a ReusableMessage, use immutable messages instead.
3634 * @return the built message
3635 *
3636 * @since 2.6
3637 * @see org.apache.logging.log4j.message.ReusableMessage
3638 */
3639 EntryMessage traceEntry(Message message);
3640
3641 /**
3642 * Logs exit from a method. Used for methods that do not return anything.
3643 *
3644 * @since 2.6
3645 */
3646 void traceExit();
3647
3648 /**
3649 * Logs exiting from a method with the result. This may be coded as:
3650 *
3651 * <pre>
3652 * return LOGGER.traceExit(myResult);
3653 * </pre>
3654 *
3655 * @param <R> The type of the parameter and object being returned.
3656 * @param result The result being returned from the method call.
3657 * @return the result.
3658 *
3659 * @since 2.6
3660 */
3661 <R> R traceExit(R result);
3662
3663 /**
3664 * Logs exiting from a method with the result. This may be coded as:
3665 *
3666 * <pre>
3667 * return LOGGER.traceExit("Result: {}", myResult);
3668 * </pre>
3669 *
3670 * @param <R> The type of the parameter and object being returned.
3671 * @param format The format String for the result.
3672 * @param result The result being returned from the method call.
3673 * @return the result.
3674 *
3675 * @since 2.6
3676 */
3677 <R> R traceExit(String format, R result);
3678
3679 /**
3680 * Logs exiting from a method with no result. Allows custom formatting of the result. This may be coded as:
3681 *
3682 * <pre>
3683 * public long doSomething(int a, int b) {
3684 * EntryMessage m = traceEntry("doSomething(a={}, b={})", a, b);
3685 * // ...
3686 * return LOGGER.traceExit(m);
3687 * }
3688 * </pre>
3689 * @param message The Message containing the formatted result.
3690 *
3691 * @since 2.6
3692 */
3693 void traceExit(EntryMessage message);
3694
3695 /**
3696 * Logs exiting from a method with the result. Allows custom formatting of the result. This may be coded as:
3697 *
3698 * <pre>
3699 * public long doSomething(int a, int b) {
3700 * EntryMessage m = traceEntry("doSomething(a={}, b={})", a, b);
3701 * // ...
3702 * return LOGGER.traceExit(m, myResult);
3703 * }
3704 * </pre>
3705 * @param message The Message containing the formatted result.
3706 * @param result The result being returned from the method call.
3707 *
3708 * @param <R> The type of the parameter and object being returned.
3709 * @return the result.
3710 *
3711 * @since 2.6
3712 */
3713 <R> R traceExit(EntryMessage message, R result);
3714
3715 /**
3716 * Logs exiting from a method with the result. Allows custom formatting of the result. This may be coded as:
3717 *
3718 * <pre>
3719 * return LOGGER.traceExit(new JsonMessage(myResult), myResult);
3720 * </pre>
3721 * @param message The Message containing the formatted result.
3722 * @param result The result being returned from the method call.
3723 *
3724 * @param <R> The type of the parameter and object being returned.
3725 * @return the result.
3726 *
3727 * @since 2.6
3728 */
3729 <R> R traceExit(Message message, R result);
3730
3731 /**
3732 * Logs a message with the specific Marker at the {@link Level#WARN WARN} level.
3733 *
3734 * @param marker the marker data specific to this log statement
3735 * @param message the message string to be logged
3736 */
3737 void warn(Marker marker, Message message);
3738
3739 /**
3740 * Logs a message with the specific Marker at the {@link Level#WARN WARN} level.
3741 *
3742 * @param marker the marker data specific to this log statement
3743 * @param message the message string to be logged
3744 * @param throwable A Throwable or null.
3745 */
3746 void warn(Marker marker, Message message, Throwable throwable);
3747
3748 /**
3749 * Logs a message which is only to be constructed if the logging level is the {@link Level#WARN WARN} level with the
3750 * specified Marker. The {@code MessageSupplier} may or may not use the {@link MessageFactory} to construct the
3751 * {@code Message}.
3752 *
3753 * @param marker the marker data specific to this log statement
3754 * @param messageSupplier A function, which when called, produces the desired log message.
3755 * @since 2.4
3756 */
3757 void warn(Marker marker, MessageSupplier messageSupplier);
3758
3759 /**
3760 * Logs a message (only to be constructed if the logging level is the {@link Level#WARN WARN} level) with the
3761 * specified Marker and including the stack warn of the {@link Throwable} <code>throwable</code> passed as parameter. The
3762 * {@code MessageSupplier} may or may not use the {@link MessageFactory} to construct the {@code Message}.
3763 *
3764 * @param marker the marker data specific to this log statement
3765 * @param messageSupplier A function, which when called, produces the desired log message.
3766 * @param throwable A Throwable or null.
3767 * @since 2.4
3768 */
3769 void warn(Marker marker, MessageSupplier messageSupplier, Throwable throwable);
3770
3771 /**
3772 * Logs a message CharSequence with the {@link Level#WARN WARN} level.
3773 *
3774 * @param marker the marker data specific to this log statement
3775 * @param message the message CharSequence to log.
3776 */
3777 void warn(Marker marker, CharSequence message);
3778
3779 /**
3780 * Logs a CharSequence at the {@link Level#WARN WARN} level including the stack trace of the {@link Throwable}
3781 * <code>throwable</code> passed as parameter.
3782 *
3783 * @param marker the marker data specific to this log statement
3784 * @param message the message CharSequence to log.
3785 * @param throwable the {@code Throwable} to log, including its stack trace.
3786 */
3787 void warn(Marker marker, CharSequence message, Throwable throwable);
3788
3789 /**
3790 * Logs a message object with the {@link Level#WARN WARN} level.
3791 *
3792 * @param marker the marker data specific to this log statement
3793 * @param message the message object to log.
3794 */
3795 void warn(Marker marker, Object message);
3796
3797 /**
3798 * Logs a message at the {@link Level#WARN WARN} level including the stack trace of the {@link Throwable}
3799 * <code>throwable</code> passed as parameter.
3800 *
3801 * @param marker the marker data specific to this log statement
3802 * @param message the message object to log.
3803 * @param throwable the {@code Throwable} to log, including its stack trace.
3804 */
3805 void warn(Marker marker, Object message, Throwable throwable);
3806
3807 /**
3808 * Logs a message object with the {@link Level#WARN WARN} level.
3809 *
3810 * @param marker the marker data specific to this log statement
3811 * @param message the message object to log.
3812 */
3813 void warn(Marker marker, String message);
3814
3815 /**
3816 * Logs a message with parameters at the {@link Level#WARN WARN} level.
3817 *
3818 * @param marker the marker data specific to this log statement.
3819 * @param message the message to log; the format depends on the message factory.
3820 * @param params parameters to the message.
3821 * @see #getMessageFactory()
3822 */
3823 void warn(Marker marker, String message, Object... params);
3824
3825 /**
3826 * Logs a message with parameters which are only to be constructed if the logging level is the {@link Level#WARN
3827 * WARN} level.
3828 *
3829 * @param marker the marker data specific to this log statement
3830 * @param message the message to log; the format depends on the message factory.
3831 * @param paramSuppliers An array of functions, which when called, produce the desired log message parameters.
3832 * @since 2.4
3833 */
3834 void warn(Marker marker, String message, Supplier<?>... paramSuppliers);
3835
3836 /**
3837 * Logs a message at the {@link Level#WARN WARN} level including the stack trace of the {@link Throwable}
3838 * <code>throwable</code> passed as parameter.
3839 *
3840 * @param marker the marker data specific to this log statement
3841 * @param message the message object to log.
3842 * @param throwable the {@code Throwable} to log, including its stack trace.
3843 */
3844 void warn(Marker marker, String message, Throwable throwable);
3845
3846 /**
3847 * Logs a message which is only to be constructed if the logging level is the {@link Level#WARN WARN} level with the
3848 * specified Marker.
3849 *
3850 * @param marker the marker data specific to this log statement
3851 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
3852 * message factory.
3853 * @since 2.4
3854 */
3855 void warn(Marker marker, Supplier<?> messageSupplier);
3856
3857 /**
3858 * Logs a message (only to be constructed if the logging level is the {@link Level#WARN WARN} level) with the
3859 * specified Marker and including the stack warn of the {@link Throwable} <code>throwable</code> passed as parameter.
3860 *
3861 * @param marker the marker data specific to this log statement
3862 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
3863 * message factory.
3864 * @param throwable A Throwable or null.
3865 * @since 2.4
3866 */
3867 void warn(Marker marker, Supplier<?> messageSupplier, Throwable throwable);
3868
3869 /**
3870 * Logs a message with the specific Marker at the {@link Level#WARN WARN} level.
3871 *
3872 * @param message the message string to be logged
3873 */
3874 void warn(Message message);
3875
3876 /**
3877 * Logs a message with the specific Marker at the {@link Level#WARN WARN} level.
3878 *
3879 * @param message the message string to be logged
3880 * @param throwable A Throwable or null.
3881 */
3882 void warn(Message message, Throwable throwable);
3883
3884 /**
3885 * Logs a message which is only to be constructed if the logging level is the {@link Level#WARN WARN} level. The
3886 * {@code MessageSupplier} may or may not use the {@link MessageFactory} to construct the {@code Message}.
3887 *
3888 * @param messageSupplier A function, which when called, produces the desired log message.
3889 * @since 2.4
3890 */
3891 void warn(MessageSupplier messageSupplier);
3892
3893 /**
3894 * Logs a message (only to be constructed if the logging level is the {@link Level#WARN WARN} level) including the
3895 * stack warn of the {@link Throwable} <code>throwable</code> passed as parameter. The {@code MessageSupplier} may or may
3896 * not use the {@link MessageFactory} to construct the {@code Message}.
3897 *
3898 * @param messageSupplier A function, which when called, produces the desired log message.
3899 * @param throwable the {@code Throwable} to log, including its stack warn.
3900 * @since 2.4
3901 */
3902 void warn(MessageSupplier messageSupplier, Throwable throwable);
3903
3904 /**
3905 * Logs a message CharSequence with the {@link Level#WARN WARN} level.
3906 *
3907 * @param message the message CharSequence to log.
3908 */
3909 void warn(CharSequence message);
3910
3911 /**
3912 * Logs a CharSequence at the {@link Level#WARN WARN} level including the stack trace of the {@link Throwable}
3913 * <code>throwable</code> passed as parameter.
3914 *
3915 * @param message the message CharSequence to log.
3916 * @param throwable the {@code Throwable} to log, including its stack trace.
3917 */
3918 void warn(CharSequence message, Throwable throwable);
3919
3920 /**
3921 * Logs a message object with the {@link Level#WARN WARN} level.
3922 *
3923 * @param message the message object to log.
3924 */
3925 void warn(Object message);
3926
3927 /**
3928 * Logs a message at the {@link Level#WARN WARN} level including the stack trace of the {@link Throwable}
3929 * <code>throwable</code> passed as parameter.
3930 *
3931 * @param message the message object to log.
3932 * @param throwable the {@code Throwable} to log, including its stack trace.
3933 */
3934 void warn(Object message, Throwable throwable);
3935
3936 /**
3937 * Logs a message object with the {@link Level#WARN WARN} level.
3938 *
3939 * @param message the message string to log.
3940 */
3941 void warn(String message);
3942
3943 /**
3944 * Logs a message with parameters at the {@link Level#WARN WARN} level.
3945 *
3946 * @param message the message to log; the format depends on the message factory.
3947 * @param params parameters to the message.
3948 * @see #getMessageFactory()
3949 */
3950 void warn(String message, Object... params);
3951
3952 /**
3953 * Logs a message with parameters which are only to be constructed if the logging level is the {@link Level#WARN
3954 * WARN} level.
3955 *
3956 * @param message the message to log; the format depends on the message factory.
3957 * @param paramSuppliers An array of functions, which when called, produce the desired log message parameters.
3958 * @since 2.4
3959 */
3960 void warn(String message, Supplier<?>... paramSuppliers);
3961
3962 /**
3963 * Logs a message at the {@link Level#WARN WARN} level including the stack trace of the {@link Throwable}
3964 * <code>throwable</code> passed as parameter.
3965 *
3966 * @param message the message object to log.
3967 * @param throwable the {@code Throwable} to log, including its stack trace.
3968 */
3969 void warn(String message, Throwable throwable);
3970
3971 /**
3972 * Logs a message which is only to be constructed if the logging level is the {@link Level#WARN WARN} level.
3973 *
3974 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
3975 * message factory.
3976 * @since 2.4
3977 */
3978 void warn(Supplier<?> messageSupplier);
3979
3980 /**
3981 * Logs a message (only to be constructed if the logging level is the {@link Level#WARN WARN} level) including the
3982 * stack warn of the {@link Throwable} <code>throwable</code> passed as parameter.
3983 *
3984 * @param messageSupplier A function, which when called, produces the desired log message; the format depends on the
3985 * message factory.
3986 * @param throwable the {@code Throwable} to log, including its stack warn.
3987 * @since 2.4
3988 */
3989 void warn(Supplier<?> messageSupplier, Throwable throwable);
3990
3991 /**
3992 * Logs a message with parameters at warn level.
3993 *
3994 * @param marker the marker data specific to this log statement
3995 * @param message the message to log; the format depends on the message factory.
3996 * @param p0 parameter to the message.
3997 */
3998 void warn(Marker marker, String message, Object p0);
3999
4000 /**
4001 * Logs a message with parameters at warn level.
4002 *
4003 * @param marker the marker data specific to this log statement
4004 * @param message the message to log; the format depends on the message factory.
4005 * @param p0 parameter to the message.
4006 * @param p1 parameter to the message.
4007 */
4008 void warn(Marker marker, String message, Object p0, Object p1);
4009
4010 /**
4011 * Logs a message with parameters at warn level.
4012 *
4013 * @param marker the marker data specific to this log statement
4014 * @param message the message to log; the format depends on the message factory.
4015 * @param p0 parameter to the message.
4016 * @param p1 parameter to the message.
4017 * @param p2 parameter to the message.
4018 */
4019 void warn(Marker marker, String message, Object p0, Object p1, Object p2);
4020
4021 /**
4022 * Logs a message with parameters at warn level.
4023 *
4024 * @param marker the marker data specific to this log statement
4025 * @param message the message to log; the format depends on the message factory.
4026 * @param p0 parameter to the message.
4027 * @param p1 parameter to the message.
4028 * @param p2 parameter to the message.
4029 * @param p3 parameter to the message.
4030 */
4031 void warn(Marker marker, String message, Object p0, Object p1, Object p2, Object p3);
4032
4033 /**
4034 * Logs a message with parameters at warn level.
4035 *
4036 * @param marker the marker data specific to this log statement
4037 * @param message the message to log; the format depends on the message factory.
4038 * @param p0 parameter to the message.
4039 * @param p1 parameter to the message.
4040 * @param p2 parameter to the message.
4041 * @param p3 parameter to the message.
4042 * @param p4 parameter to the message.
4043 */
4044 void warn(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4);
4045
4046 /**
4047 * Logs a message with parameters at warn level.
4048 *
4049 * @param marker the marker data specific to this log statement
4050 * @param message the message to log; the format depends on the message factory.
4051 * @param p0 parameter to the message.
4052 * @param p1 parameter to the message.
4053 * @param p2 parameter to the message.
4054 * @param p3 parameter to the message.
4055 * @param p4 parameter to the message.
4056 * @param p5 parameter to the message.
4057 */
4058 void warn(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5);
4059
4060 /**
4061 * Logs a message with parameters at warn level.
4062 *
4063 * @param marker the marker data specific to this log statement
4064 * @param message the message to log; the format depends on the message factory.
4065 * @param p0 parameter to the message.
4066 * @param p1 parameter to the message.
4067 * @param p2 parameter to the message.
4068 * @param p3 parameter to the message.
4069 * @param p4 parameter to the message.
4070 * @param p5 parameter to the message.
4071 * @param p6 parameter to the message.
4072 */
4073 void warn(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5,
4074 Object p6);
4075
4076 /**
4077 * Logs a message with parameters at warn level.
4078 *
4079 * @param marker the marker data specific to this log statement
4080 * @param message the message to log; the format depends on the message factory.
4081 * @param p0 parameter to the message.
4082 * @param p1 parameter to the message.
4083 * @param p2 parameter to the message.
4084 * @param p3 parameter to the message.
4085 * @param p4 parameter to the message.
4086 * @param p5 parameter to the message.
4087 * @param p6 parameter to the message.
4088 * @param p7 parameter to the message.
4089 */
4090 void warn(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
4091 Object p7);
4092
4093 /**
4094 * Logs a message with parameters at warn level.
4095 *
4096 * @param marker the marker data specific to this log statement
4097 * @param message the message to log; the format depends on the message factory.
4098 * @param p0 parameter to the message.
4099 * @param p1 parameter to the message.
4100 * @param p2 parameter to the message.
4101 * @param p3 parameter to the message.
4102 * @param p4 parameter to the message.
4103 * @param p5 parameter to the message.
4104 * @param p6 parameter to the message.
4105 * @param p7 parameter to the message.
4106 * @param p8 parameter to the message.
4107 */
4108 void warn(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
4109 Object p7, Object p8);
4110
4111 /**
4112 * Logs a message with parameters at warn level.
4113 *
4114 * @param marker the marker data specific to this log statement
4115 * @param message the message to log; the format depends on the message factory.
4116 * @param p0 parameter to the message.
4117 * @param p1 parameter to the message.
4118 * @param p2 parameter to the message.
4119 * @param p3 parameter to the message.
4120 * @param p4 parameter to the message.
4121 * @param p5 parameter to the message.
4122 * @param p6 parameter to the message.
4123 * @param p7 parameter to the message.
4124 * @param p8 parameter to the message.
4125 * @param p9 parameter to the message.
4126 */
4127 void warn(Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
4128 Object p7, Object p8, Object p9);
4129
4130 /**
4131 * Logs a message with parameters at warn level.
4132 *
4133 * @param message the message to log; the format depends on the message factory.
4134 * @param p0 parameter to the message.
4135 */
4136 void warn(String message, Object p0);
4137
4138 /**
4139 * Logs a message with parameters at warn level.
4140 *
4141 * @param message the message to log; the format depends on the message factory.
4142 * @param p0 parameter to the message.
4143 * @param p1 parameter to the message.
4144 */
4145 void warn(String message, Object p0, Object p1);
4146
4147 /**
4148 * Logs a message with parameters at warn level.
4149 *
4150 * @param message the message to log; the format depends on the message factory.
4151 * @param p0 parameter to the message.
4152 * @param p1 parameter to the message.
4153 * @param p2 parameter to the message.
4154 */
4155 void warn(String message, Object p0, Object p1, Object p2);
4156
4157 /**
4158 * Logs a message with parameters at warn level.
4159 *
4160 * @param message the message to log; the format depends on the message factory.
4161 * @param p0 parameter to the message.
4162 * @param p1 parameter to the message.
4163 * @param p2 parameter to the message.
4164 * @param p3 parameter to the message.
4165 */
4166 void warn(String message, Object p0, Object p1, Object p2, Object p3);
4167
4168 /**
4169 * Logs a message with parameters at warn level.
4170 *
4171 * @param message the message to log; the format depends on the message factory.
4172 * @param p0 parameter to the message.
4173 * @param p1 parameter to the message.
4174 * @param p2 parameter to the message.
4175 * @param p3 parameter to the message.
4176 * @param p4 parameter to the message.
4177 */
4178 void warn(String message, Object p0, Object p1, Object p2, Object p3, Object p4);
4179
4180 /**
4181 * Logs a message with parameters at warn level.
4182 *
4183 * @param message the message to log; the format depends on the message factory.
4184 * @param p0 parameter to the message.
4185 * @param p1 parameter to the message.
4186 * @param p2 parameter to the message.
4187 * @param p3 parameter to the message.
4188 * @param p4 parameter to the message.
4189 * @param p5 parameter to the message.
4190 */
4191 void warn(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5);
4192
4193 /**
4194 * Logs a message with parameters at warn level.
4195 *
4196 * @param message the message to log; the format depends on the message factory.
4197 * @param p0 parameter to the message.
4198 * @param p1 parameter to the message.
4199 * @param p2 parameter to the message.
4200 * @param p3 parameter to the message.
4201 * @param p4 parameter to the message.
4202 * @param p5 parameter to the message.
4203 * @param p6 parameter to the message.
4204 */
4205 void warn(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6);
4206
4207 /**
4208 * Logs a message with parameters at warn level.
4209 *
4210 * @param message the message to log; the format depends on the message factory.
4211 * @param p0 parameter to the message.
4212 * @param p1 parameter to the message.
4213 * @param p2 parameter to the message.
4214 * @param p3 parameter to the message.
4215 * @param p4 parameter to the message.
4216 * @param p5 parameter to the message.
4217 * @param p6 parameter to the message.
4218 * @param p7 parameter to the message.
4219 */
4220 void warn(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7);
4221
4222 /**
4223 * Logs a message with parameters at warn level.
4224 *
4225 * @param message the message to log; the format depends on the message factory.
4226 * @param p0 parameter to the message.
4227 * @param p1 parameter to the message.
4228 * @param p2 parameter to the message.
4229 * @param p3 parameter to the message.
4230 * @param p4 parameter to the message.
4231 * @param p5 parameter to the message.
4232 * @param p6 parameter to the message.
4233 * @param p7 parameter to the message.
4234 * @param p8 parameter to the message.
4235 */
4236 void warn(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7,
4237 Object p8);
4238
4239 /**
4240 * Logs a message with parameters at warn level.
4241 *
4242 * @param message the message to log; the format depends on the message factory.
4243 * @param p0 parameter to the message.
4244 * @param p1 parameter to the message.
4245 * @param p2 parameter to the message.
4246 * @param p3 parameter to the message.
4247 * @param p4 parameter to the message.
4248 * @param p5 parameter to the message.
4249 * @param p6 parameter to the message.
4250 * @param p7 parameter to the message.
4251 * @param p8 parameter to the message.
4252 * @param p9 parameter to the message.
4253 */
4254 void warn(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7,
4255 Object p8, Object p9);
4256
4257 /**
4258 * Logs a Message.
4259 * @param level The logging Level to check.
4260 * @param marker A Marker or null.
4261 * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and
4262 * method when location information needs to be logged.
4263 * @param location The location of the caller.
4264 * @param message The message format.
4265 * @param throwable the {@code Throwable} to log, including its stack trace.
4266 * @since 2.13.0
4267 */
4268 default void logMessage(Level level, Marker marker, String fqcn, StackTraceElement location, Message message,
4269 Throwable throwable) {
4270 // noop
4271 }
4272
4273 /**
4274 * Construct a trace log event.
4275 * @return a LogBuilder.
4276 * @since 2.13.0
4277 */
4278 default LogBuilder atTrace() {
4279 return LogBuilder.NOOP;
4280 }
4281
4282 /**
4283 * Construct a trace log event.
4284 * @return a LogBuilder.
4285 * @since 2.13.0
4286 */
4287 default LogBuilder atDebug() {
4288 return LogBuilder.NOOP;
4289 }
4290
4291 /**
4292 * Construct a trace log event.
4293 * @return a LogBuilder.
4294 * @since 2.13.0
4295 */
4296 default LogBuilder atInfo() {
4297 return LogBuilder.NOOP;
4298 }
4299
4300 /**
4301 * Construct a trace log event.
4302 * @return a LogBuilder.
4303 * @since 2.13.0
4304 */
4305 default LogBuilder atWarn() {
4306 return LogBuilder.NOOP;
4307 }
4308
4309 /**
4310 * Construct a trace log event.
4311 * @return a LogBuilder.
4312 * @since 2.13.0
4313 */
4314 default LogBuilder atError() {
4315 return LogBuilder.NOOP;
4316 }
4317
4318 /**
4319 * Construct a trace log event.
4320 * @return a LogBuilder.
4321 * @since 2.13.0
4322 */
4323 default LogBuilder atFatal() {
4324 return LogBuilder.NOOP;
4325 }
4326
4327 /**
4328 * Construct a log event that will always be logged.
4329 * @return a LogBuilder.
4330 * @since 2.13.0
4331 */
4332 default LogBuilder always() {
4333 return LogBuilder.NOOP;
4334 }
4335
4336 /**
4337 * Construct a log event.
4338 * @param level Any level (ignoreed here).
4339 * @return a LogBuilder.
4340 * @since 2.13.0
4341 */
4342 default LogBuilder atLevel(Level level) {
4343 return LogBuilder.NOOP;
4344 }
4345
4346 }