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