001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache license, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the license for the specific language governing permissions and 015 * limitations under the license. 016 */ 017package org.apache.logging.log4j.spi; 018 019import java.io.Serializable; 020 021import org.apache.logging.log4j.Level; 022import org.apache.logging.log4j.LoggingException; 023import org.apache.logging.log4j.Marker; 024import org.apache.logging.log4j.MarkerManager; 025import org.apache.logging.log4j.message.DefaultFlowMessageFactory; 026import org.apache.logging.log4j.message.EntryMessage; 027import org.apache.logging.log4j.message.FlowMessageFactory; 028import org.apache.logging.log4j.message.Message; 029import org.apache.logging.log4j.message.MessageFactory; 030import org.apache.logging.log4j.message.MessageFactory2; 031import org.apache.logging.log4j.message.ParameterizedMessage; 032import org.apache.logging.log4j.message.ParameterizedMessageFactory; 033import org.apache.logging.log4j.message.ReusableMessageFactory; 034import org.apache.logging.log4j.message.SimpleMessage; 035import org.apache.logging.log4j.message.StringFormattedMessage; 036import org.apache.logging.log4j.status.StatusLogger; 037import org.apache.logging.log4j.util.Constants; 038import org.apache.logging.log4j.util.LambdaUtil; 039import org.apache.logging.log4j.util.LoaderUtil; 040import org.apache.logging.log4j.util.MessageSupplier; 041import org.apache.logging.log4j.util.PerformanceSensitive; 042import org.apache.logging.log4j.util.PropertiesUtil; 043import org.apache.logging.log4j.util.Strings; 044import org.apache.logging.log4j.util.Supplier; 045 046/** 047 * Base implementation of a Logger. It is highly recommended that any Logger implementation extend this class. 048 */ 049public abstract class AbstractLogger implements ExtendedLogger, Serializable { 050 // Implementation note: many methods in this class are tuned for performance. MODIFY WITH CARE! 051 // Specifically, try to keep the hot methods to 35 bytecodes or less: 052 // this is within the MaxInlineSize threshold on Java 7 and Java 8 Hotspot and makes these methods 053 // candidates for immediate inlining instead of waiting until they are designated "hot enough". 054 055 /** 056 * Marker for flow tracing. 057 */ 058 public static final Marker FLOW_MARKER = MarkerManager.getMarker("FLOW"); 059 060 /** 061 * Marker for method entry tracing. 062 */ 063 public static final Marker ENTRY_MARKER = MarkerManager.getMarker("ENTER").setParents(FLOW_MARKER); 064 065 /** 066 * Marker for method exit tracing. 067 */ 068 public static final Marker EXIT_MARKER = MarkerManager.getMarker("EXIT").setParents(FLOW_MARKER); 069 070 /** 071 * Marker for exception tracing. 072 */ 073 public static final Marker EXCEPTION_MARKER = MarkerManager.getMarker("EXCEPTION"); 074 075 /** 076 * Marker for throwing exceptions. 077 */ 078 public static final Marker THROWING_MARKER = MarkerManager.getMarker("THROWING").setParents(EXCEPTION_MARKER); 079 080 /** 081 * Marker for catching exceptions. 082 */ 083 public static final Marker CATCHING_MARKER = MarkerManager.getMarker("CATCHING").setParents(EXCEPTION_MARKER); 084 085 /** 086 * The default MessageFactory class. 087 */ 088 public static final Class<? extends MessageFactory> DEFAULT_MESSAGE_FACTORY_CLASS = 089 createClassForProperty("log4j2.messageFactory", ReusableMessageFactory.class, 090 ParameterizedMessageFactory.class); 091 092 /** 093 * The default FlowMessageFactory class. 094 */ 095 public static final Class<? extends FlowMessageFactory> DEFAULT_FLOW_MESSAGE_FACTORY_CLASS = 096 createFlowClassForProperty("log4j2.flowMessageFactory", DefaultFlowMessageFactory.class); 097 098 private static final long serialVersionUID = 2L; 099 100 private static final String FQCN = AbstractLogger.class.getName(); 101 private static final String THROWING = "Throwing"; 102 private static final String CATCHING = "Catching"; 103 104 protected final String name; 105 private final MessageFactory2 messageFactory; 106 private final FlowMessageFactory flowMessageFactory; 107 private static ThreadLocal<int[]> recursionDepthHolder = new ThreadLocal<>(); // LOG4J2-1518, LOG4J2-2031 108 109 /** 110 * Creates a new logger named after this class (or subclass). 111 */ 112 public AbstractLogger() { 113 this.name = getClass().getName(); 114 this.messageFactory = createDefaultMessageFactory(); 115 this.flowMessageFactory = createDefaultFlowMessageFactory(); 116 } 117 118 /** 119 * Creates a new named logger. 120 * 121 * @param name the logger name 122 */ 123 public AbstractLogger(final String name) { 124 this(name, createDefaultMessageFactory()); 125 } 126 127 /** 128 * Creates a new named logger with a particular {@link MessageFactory}. 129 * 130 * @param name the logger name 131 * @param messageFactory the message factory, if null then use the default message factory. 132 */ 133 public AbstractLogger(final String name, final MessageFactory messageFactory) { 134 this.name = name; 135 this.messageFactory = messageFactory == null ? createDefaultMessageFactory() : narrow(messageFactory); 136 this.flowMessageFactory = createDefaultFlowMessageFactory(); 137 } 138 139 /** 140 * Checks that the message factory a logger was created with is the same as the given messageFactory. If they are 141 * different log a warning to the {@linkplain StatusLogger}. A null MessageFactory translates to the default 142 * MessageFactory {@link #DEFAULT_MESSAGE_FACTORY_CLASS}. 143 * 144 * @param logger The logger to check 145 * @param messageFactory The message factory to check. 146 */ 147 public static void checkMessageFactory(final ExtendedLogger logger, final MessageFactory messageFactory) { 148 final String name = logger.getName(); 149 final MessageFactory loggerMessageFactory = logger.getMessageFactory(); 150 if (messageFactory != null && !loggerMessageFactory.equals(messageFactory)) { 151 StatusLogger.getLogger().warn( 152 "The Logger {} was created with the message factory {} and is now requested with the " 153 + "message factory {}, which may create log events with unexpected formatting.", name, 154 loggerMessageFactory, messageFactory); 155 } else if (messageFactory == null && !loggerMessageFactory.getClass().equals(DEFAULT_MESSAGE_FACTORY_CLASS)) { 156 StatusLogger 157 .getLogger() 158 .warn("The Logger {} was created with the message factory {} and is now requested with a null " 159 + "message factory (defaults to {}), which may create log events with unexpected " 160 + "formatting.", 161 name, loggerMessageFactory, DEFAULT_MESSAGE_FACTORY_CLASS.getName()); 162 } 163 } 164 165 @Override 166 public void catching(final Level level, final Throwable t) { 167 catching(FQCN, level, t); 168 } 169 170 /** 171 * Logs a Throwable that has been caught with location information. 172 * 173 * @param fqcn The fully qualified class name of the <b>caller</b>. 174 * @param level The logging level. 175 * @param t The Throwable. 176 */ 177 protected void catching(final String fqcn, final Level level, final Throwable t) { 178 if (isEnabled(level, CATCHING_MARKER, (Object) null, null)) { 179 logMessageSafely(fqcn, level, CATCHING_MARKER, catchingMsg(t), t); 180 } 181 } 182 183 @Override 184 public void catching(final Throwable t) { 185 if (isEnabled(Level.ERROR, CATCHING_MARKER, (Object) null, null)) { 186 logMessageSafely(FQCN, Level.ERROR, CATCHING_MARKER, catchingMsg(t), t); 187 } 188 } 189 190 protected Message catchingMsg(final Throwable t) { 191 return messageFactory.newMessage(CATCHING); 192 } 193 194 private static Class<? extends MessageFactory> createClassForProperty(final String property, 195 final Class<ReusableMessageFactory> reusableParameterizedMessageFactoryClass, 196 final Class<ParameterizedMessageFactory> parameterizedMessageFactoryClass) { 197 try { 198 final String fallback = Constants.ENABLE_THREADLOCALS ? reusableParameterizedMessageFactoryClass.getName() 199 : parameterizedMessageFactoryClass.getName(); 200 final String clsName = PropertiesUtil.getProperties().getStringProperty(property, fallback); 201 return LoaderUtil.loadClass(clsName).asSubclass(MessageFactory.class); 202 } catch (final Throwable t) { 203 return parameterizedMessageFactoryClass; 204 } 205 } 206 207 private static Class<? extends FlowMessageFactory> createFlowClassForProperty(final String property, 208 final Class<DefaultFlowMessageFactory> defaultFlowMessageFactoryClass) { 209 try { 210 final String clsName = PropertiesUtil.getProperties().getStringProperty(property, defaultFlowMessageFactoryClass.getName()); 211 return LoaderUtil.loadClass(clsName).asSubclass(FlowMessageFactory.class); 212 } catch (final Throwable t) { 213 return defaultFlowMessageFactoryClass; 214 } 215 } 216 217 private static MessageFactory2 createDefaultMessageFactory() { 218 try { 219 final MessageFactory result = DEFAULT_MESSAGE_FACTORY_CLASS.newInstance(); 220 return narrow(result); 221 } catch (final InstantiationException | IllegalAccessException e) { 222 throw new IllegalStateException(e); 223 } 224 } 225 226 private static MessageFactory2 narrow(final MessageFactory result) { 227 if (result instanceof MessageFactory2) { 228 return (MessageFactory2) result; 229 } 230 return new MessageFactory2Adapter(result); 231 } 232 233 private static FlowMessageFactory createDefaultFlowMessageFactory() { 234 try { 235 return DEFAULT_FLOW_MESSAGE_FACTORY_CLASS.newInstance(); 236 } catch (final InstantiationException | IllegalAccessException e) { 237 throw new IllegalStateException(e); 238 } 239 } 240 241 @Override 242 public void debug(final Marker marker, final CharSequence message) { 243 logIfEnabled(FQCN, Level.DEBUG, marker, message, null); 244 } 245 246 @Override 247 public void debug(final Marker marker, final CharSequence message, final Throwable t) { 248 logIfEnabled(FQCN, Level.DEBUG, marker, message, t); 249 } 250 251 @Override 252 public void debug(final Marker marker, final Message msg) { 253 logIfEnabled(FQCN, Level.DEBUG, marker, msg, msg != null ? msg.getThrowable() : null); 254 } 255 256 @Override 257 public void debug(final Marker marker, final Message msg, final Throwable t) { 258 logIfEnabled(FQCN, Level.DEBUG, marker, msg, t); 259 } 260 261 @Override 262 public void debug(final Marker marker, final Object message) { 263 logIfEnabled(FQCN, Level.DEBUG, marker, message, null); 264 } 265 266 @Override 267 public void debug(final Marker marker, final Object message, final Throwable t) { 268 logIfEnabled(FQCN, Level.DEBUG, marker, message, t); 269 } 270 271 @Override 272 public void debug(final Marker marker, final String message) { 273 logIfEnabled(FQCN, Level.DEBUG, marker, message, (Throwable) null); 274 } 275 276 @Override 277 public void debug(final Marker marker, final String message, final Object... params) { 278 logIfEnabled(FQCN, Level.DEBUG, marker, message, params); 279 } 280 281 @Override 282 public void debug(final Marker marker, final String message, final Throwable t) { 283 logIfEnabled(FQCN, Level.DEBUG, marker, message, t); 284 } 285 286 @Override 287 public void debug(final Message msg) { 288 logIfEnabled(FQCN, Level.DEBUG, null, msg, msg != null ? msg.getThrowable() : null); 289 } 290 291 @Override 292 public void debug(final Message msg, final Throwable t) { 293 logIfEnabled(FQCN, Level.DEBUG, null, msg, t); 294 } 295 296 @Override 297 public void debug(final CharSequence message) { 298 logIfEnabled(FQCN, Level.DEBUG, null, message, null); 299 } 300 301 @Override 302 public void debug(final CharSequence message, final Throwable t) { 303 logIfEnabled(FQCN, Level.DEBUG, null, message, t); 304 } 305 306 @Override 307 public void debug(final Object message) { 308 logIfEnabled(FQCN, Level.DEBUG, null, message, null); 309 } 310 311 @Override 312 public void debug(final Object message, final Throwable t) { 313 logIfEnabled(FQCN, Level.DEBUG, null, message, t); 314 } 315 316 @Override 317 public void debug(final String message) { 318 logIfEnabled(FQCN, Level.DEBUG, null, message, (Throwable) null); 319 } 320 321 @Override 322 public void debug(final String message, final Object... params) { 323 logIfEnabled(FQCN, Level.DEBUG, null, message, params); 324 } 325 326 @Override 327 public void debug(final String message, final Throwable t) { 328 logIfEnabled(FQCN, Level.DEBUG, null, message, t); 329 } 330 331 @Override 332 public void debug(final Supplier<?> msgSupplier) { 333 logIfEnabled(FQCN, Level.DEBUG, null, msgSupplier, (Throwable) null); 334 } 335 336 @Override 337 public void debug(final Supplier<?> msgSupplier, final Throwable t) { 338 logIfEnabled(FQCN, Level.DEBUG, null, msgSupplier, t); 339 } 340 341 @Override 342 public void debug(final Marker marker, final Supplier<?> msgSupplier) { 343 logIfEnabled(FQCN, Level.DEBUG, marker, msgSupplier, (Throwable) null); 344 } 345 346 @Override 347 public void debug(final Marker marker, final String message, final Supplier<?>... paramSuppliers) { 348 logIfEnabled(FQCN, Level.DEBUG, marker, message, paramSuppliers); 349 } 350 351 @Override 352 public void debug(final Marker marker, final Supplier<?> msgSupplier, final Throwable t) { 353 logIfEnabled(FQCN, Level.DEBUG, marker, msgSupplier, t); 354 } 355 356 @Override 357 public void debug(final String message, final Supplier<?>... paramSuppliers) { 358 logIfEnabled(FQCN, Level.DEBUG, null, message, paramSuppliers); 359 } 360 361 @Override 362 public void debug(final Marker marker, final MessageSupplier msgSupplier) { 363 logIfEnabled(FQCN, Level.DEBUG, marker, msgSupplier, (Throwable) null); 364 } 365 366 @Override 367 public void debug(final Marker marker, final MessageSupplier msgSupplier, final Throwable t) { 368 logIfEnabled(FQCN, Level.DEBUG, marker, msgSupplier, t); 369 } 370 371 @Override 372 public void debug(final MessageSupplier msgSupplier) { 373 logIfEnabled(FQCN, Level.DEBUG, null, msgSupplier, (Throwable) null); 374 } 375 376 @Override 377 public void debug(final MessageSupplier msgSupplier, final Throwable t) { 378 logIfEnabled(FQCN, Level.DEBUG, null, msgSupplier, t); 379 } 380 381 @Override 382 public void debug(final Marker marker, final String message, final Object p0) { 383 logIfEnabled(FQCN, Level.DEBUG, marker, message, p0); 384 } 385 386 @Override 387 public void debug(final Marker marker, final String message, final Object p0, final Object p1) { 388 logIfEnabled(FQCN, Level.DEBUG, marker, message, p0, p1); 389 } 390 391 @Override 392 public void debug(final Marker marker, final String message, final Object p0, final Object p1, final Object p2) { 393 logIfEnabled(FQCN, Level.DEBUG, marker, message, p0, p1, p2); 394 } 395 396 @Override 397 public void debug(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 398 final Object p3) { 399 logIfEnabled(FQCN, Level.DEBUG, marker, message, p0, p1, p2, p3); 400 } 401 402 @Override 403 public void debug(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 404 final Object p3, final Object p4) { 405 logIfEnabled(FQCN, Level.DEBUG, marker, message, p0, p1, p2, p3, p4); 406 } 407 408 @Override 409 public void debug(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 410 final Object p3, final Object p4, final Object p5) { 411 logIfEnabled(FQCN, Level.DEBUG, marker, message, p0, p1, p2, p3, p4, p5); 412 } 413 414 @Override 415 public void debug(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 416 final Object p3, final Object p4, final Object p5, 417 final Object p6) { 418 logIfEnabled(FQCN, Level.DEBUG, marker, message, p0, p1, p2, p3, p4, p5, p6); 419 } 420 421 @Override 422 public void debug(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 423 final Object p3, final Object p4, final Object p5, 424 final Object p6, final Object p7) { 425 logIfEnabled(FQCN, Level.DEBUG, marker, message, p0, p1, p2, p3, p4, p5, p6, p7); 426 } 427 428 @Override 429 public void debug(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 430 final Object p3, final Object p4, final Object p5, 431 final Object p6, final Object p7, final Object p8) { 432 logIfEnabled(FQCN, Level.DEBUG, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8); 433 } 434 435 @Override 436 public void debug(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 437 final Object p3, final Object p4, final Object p5, 438 final Object p6, final Object p7, final Object p8, final Object p9) { 439 logIfEnabled(FQCN, Level.DEBUG, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); 440 } 441 442 @Override 443 public void debug(final String message, final Object p0) { 444 logIfEnabled(FQCN, Level.DEBUG, null, message, p0); 445 } 446 447 @Override 448 public void debug(final String message, final Object p0, final Object p1) { 449 logIfEnabled(FQCN, Level.DEBUG, null, message, p0, p1); 450 } 451 452 @Override 453 public void debug(final String message, final Object p0, final Object p1, final Object p2) { 454 logIfEnabled(FQCN, Level.DEBUG, null, message, p0, p1, p2); 455 } 456 457 @Override 458 public void debug(final String message, final Object p0, final Object p1, final Object p2, final Object p3) { 459 logIfEnabled(FQCN, Level.DEBUG, null, message, p0, p1, p2, p3); 460 } 461 462 @Override 463 public void debug(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 464 final Object p4) { 465 logIfEnabled(FQCN, Level.DEBUG, null, message, p0, p1, p2, p3, p4); 466 } 467 468 @Override 469 public void debug(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 470 final Object p4, final Object p5) { 471 logIfEnabled(FQCN, Level.DEBUG, null, message, p0, p1, p2, p3, p4, p5); 472 } 473 474 @Override 475 public void debug(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 476 final Object p4, final Object p5, final Object p6) { 477 logIfEnabled(FQCN, Level.DEBUG, null, message, p0, p1, p2, p3, p4, p5, p6); 478 } 479 480 @Override 481 public void debug(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 482 final Object p4, final Object p5, final Object p6, 483 final Object p7) { 484 logIfEnabled(FQCN, Level.DEBUG, null, message, p0, p1, p2, p3, p4, p5, p6, p7); 485 } 486 487 @Override 488 public void debug(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 489 final Object p4, final Object p5, final Object p6, 490 final Object p7, final Object p8) { 491 logIfEnabled(FQCN, Level.DEBUG, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8); 492 } 493 494 @Override 495 public void debug(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 496 final Object p4, final Object p5, final Object p6, 497 final Object p7, final Object p8, final Object p9) { 498 logIfEnabled(FQCN, Level.DEBUG, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); 499 } 500 501 /** 502 * Logs entry to a method with location information. 503 * 504 * @param fqcn The fully qualified class name of the <b>caller</b>. 505 * @param format Format String for the parameters. 506 * @param paramSuppliers The Suppliers of the parameters. 507 */ 508 protected EntryMessage enter(final String fqcn, final String format, final Supplier<?>... paramSuppliers) { 509 EntryMessage entryMsg = null; 510 if (isEnabled(Level.TRACE, ENTRY_MARKER, (Object) null, null)) { 511 logMessageSafely(fqcn, Level.TRACE, ENTRY_MARKER, entryMsg = entryMsg(format, paramSuppliers), null); 512 } 513 return entryMsg; 514 } 515 516 /** 517 * Logs entry to a method with location information. 518 * 519 * @param fqcn The fully qualified class name of the <b>caller</b>. 520 * @param format The format String for the parameters. 521 * @param paramSuppliers The parameters to the method. 522 */ 523 @Deprecated 524 protected EntryMessage enter(final String fqcn, final String format, final MessageSupplier... paramSuppliers) { 525 EntryMessage entryMsg = null; 526 if (isEnabled(Level.TRACE, ENTRY_MARKER, (Object) null, null)) { 527 logMessageSafely(fqcn, Level.TRACE, ENTRY_MARKER, entryMsg = entryMsg(format, paramSuppliers), null); 528 } 529 return entryMsg; 530 } 531 532 /** 533 * Logs entry to a method with location information. 534 * 535 * @param fqcn The fully qualified class name of the <b>caller</b>. 536 * @param format The format String for the parameters. 537 * @param params The parameters to the method. 538 */ 539 protected EntryMessage enter(final String fqcn, final String format, final Object... params) { 540 EntryMessage entryMsg = null; 541 if (isEnabled(Level.TRACE, ENTRY_MARKER, (Object) null, null)) { 542 logMessageSafely(fqcn, Level.TRACE, ENTRY_MARKER, entryMsg = entryMsg(format, params), null); 543 } 544 return entryMsg; 545 } 546 547 /** 548 * Logs entry to a method with location information. 549 * 550 * @param fqcn The fully qualified class name of the <b>caller</b>. 551 * @param msgSupplier The Supplier of the Message. 552 */ 553 @Deprecated 554 protected EntryMessage enter(final String fqcn, final MessageSupplier msgSupplier) { 555 EntryMessage message = null; 556 if (isEnabled(Level.TRACE, ENTRY_MARKER, (Object) null, null)) { 557 logMessageSafely(fqcn, Level.TRACE, ENTRY_MARKER, message = flowMessageFactory.newEntryMessage( 558 msgSupplier.get()), null); 559 } 560 return message; 561 } 562 563 /** 564 * Logs entry to a method with location information. 565 * 566 * @param fqcn 567 * The fully qualified class name of the <b>caller</b>. 568 * @param message 569 * the Message. 570 * @since 2.6 571 */ 572 protected EntryMessage enter(final String fqcn, final Message message) { 573 EntryMessage flowMessage = null; 574 if (isEnabled(Level.TRACE, ENTRY_MARKER, (Object) null, null)) { 575 logMessageSafely(fqcn, Level.TRACE, ENTRY_MARKER, flowMessage = flowMessageFactory.newEntryMessage(message), 576 null); 577 } 578 return flowMessage; 579 } 580 581 @Deprecated 582 @Override 583 public void entry() { 584 entry(FQCN, (Object[]) null); 585 } 586 587 @Override 588 public void entry(final Object... params) { 589 entry(FQCN, params); 590 } 591 592 /** 593 * Logs entry to a method with location information. 594 * 595 * @param fqcn The fully qualified class name of the <b>caller</b>. 596 * @param params The parameters to the method. 597 */ 598 protected void entry(final String fqcn, final Object... params) { 599 if (isEnabled(Level.TRACE, ENTRY_MARKER, (Object) null, null)) { 600 if (params == null) { 601 logMessageSafely(fqcn, Level.TRACE, ENTRY_MARKER, entryMsg(null, (Supplier<?>[]) null), null); 602 } else { 603 logMessageSafely(fqcn, Level.TRACE, ENTRY_MARKER, entryMsg(null, params), null); 604 } 605 } 606 } 607 608 protected EntryMessage entryMsg(final String format, final Object... params) { 609 final int count = params == null ? 0 : params.length; 610 if (count == 0) { 611 if (Strings.isEmpty(format)) { 612 return flowMessageFactory.newEntryMessage(null); 613 } 614 return flowMessageFactory.newEntryMessage(new SimpleMessage(format)); 615 } 616 if (format != null) { 617 return flowMessageFactory.newEntryMessage(new ParameterizedMessage(format, params)); 618 } 619 final StringBuilder sb = new StringBuilder(); 620 sb.append("params("); 621 for (int i = 0; i < count; i++) { 622 if (i > 0) { 623 sb.append(", "); 624 } 625 final Object parm = params[i]; 626 sb.append(parm instanceof Message ? ((Message) parm).getFormattedMessage() : String.valueOf(parm)); 627 } 628 sb.append(')'); 629 return flowMessageFactory.newEntryMessage(new SimpleMessage(sb)); 630 } 631 632 protected EntryMessage entryMsg(final String format, final MessageSupplier... paramSuppliers) { 633 final int count = paramSuppliers == null ? 0 : paramSuppliers.length; 634 final Object[] params = new Object[count]; 635 for (int i = 0; i < count; i++) { 636 params[i] = paramSuppliers[i].get(); 637 params[i] = params[i] != null ? ((Message) params[i]).getFormattedMessage() : null; 638 } 639 return entryMsg(format, params); 640 } 641 642 protected EntryMessage entryMsg(final String format, final Supplier<?>... paramSuppliers) { 643 final int count = paramSuppliers == null ? 0 : paramSuppliers.length; 644 final Object[] params = new Object[count]; 645 for (int i = 0; i < count; i++) { 646 params[i] = paramSuppliers[i].get(); 647 if (params[i] instanceof Message) { 648 params[i] = ((Message) params[i]).getFormattedMessage(); 649 } 650 } 651 return entryMsg(format, params); 652 } 653 654 @Override 655 public void error(final Marker marker, final Message msg) { 656 logIfEnabled(FQCN, Level.ERROR, marker, msg, msg != null ? msg.getThrowable() : null); 657 } 658 659 @Override 660 public void error(final Marker marker, final Message msg, final Throwable t) { 661 logIfEnabled(FQCN, Level.ERROR, marker, msg, t); 662 } 663 664 @Override 665 public void error(final Marker marker, final CharSequence message) { 666 logIfEnabled(FQCN, Level.ERROR, marker, message, null); 667 } 668 669 @Override 670 public void error(final Marker marker, final CharSequence message, final Throwable t) { 671 logIfEnabled(FQCN, Level.ERROR, marker, message, t); 672 } 673 674 @Override 675 public void error(final Marker marker, final Object message) { 676 logIfEnabled(FQCN, Level.ERROR, marker, message, null); 677 } 678 679 @Override 680 public void error(final Marker marker, final Object message, final Throwable t) { 681 logIfEnabled(FQCN, Level.ERROR, marker, message, t); 682 } 683 684 @Override 685 public void error(final Marker marker, final String message) { 686 logIfEnabled(FQCN, Level.ERROR, marker, message, (Throwable) null); 687 } 688 689 @Override 690 public void error(final Marker marker, final String message, final Object... params) { 691 logIfEnabled(FQCN, Level.ERROR, marker, message, params); 692 } 693 694 @Override 695 public void error(final Marker marker, final String message, final Throwable t) { 696 logIfEnabled(FQCN, Level.ERROR, marker, message, t); 697 } 698 699 @Override 700 public void error(final Message msg) { 701 logIfEnabled(FQCN, Level.ERROR, null, msg, msg != null ? msg.getThrowable() : null); 702 } 703 704 @Override 705 public void error(final Message msg, final Throwable t) { 706 logIfEnabled(FQCN, Level.ERROR, null, msg, t); 707 } 708 709 @Override 710 public void error(final CharSequence message) { 711 logIfEnabled(FQCN, Level.ERROR, null, message, null); 712 } 713 714 @Override 715 public void error(final CharSequence message, final Throwable t) { 716 logIfEnabled(FQCN, Level.ERROR, null, message, t); 717 } 718 719 @Override 720 public void error(final Object message) { 721 logIfEnabled(FQCN, Level.ERROR, null, message, null); 722 } 723 724 @Override 725 public void error(final Object message, final Throwable t) { 726 logIfEnabled(FQCN, Level.ERROR, null, message, t); 727 } 728 729 @Override 730 public void error(final String message) { 731 logIfEnabled(FQCN, Level.ERROR, null, message, (Throwable) null); 732 } 733 734 @Override 735 public void error(final String message, final Object... params) { 736 logIfEnabled(FQCN, Level.ERROR, null, message, params); 737 } 738 739 @Override 740 public void error(final String message, final Throwable t) { 741 logIfEnabled(FQCN, Level.ERROR, null, message, t); 742 } 743 744 @Override 745 public void error(final Supplier<?> msgSupplier) { 746 logIfEnabled(FQCN, Level.ERROR, null, msgSupplier, (Throwable) null); 747 } 748 749 @Override 750 public void error(final Supplier<?> msgSupplier, final Throwable t) { 751 logIfEnabled(FQCN, Level.ERROR, null, msgSupplier, t); 752 } 753 754 @Override 755 public void error(final Marker marker, final Supplier<?> msgSupplier) { 756 logIfEnabled(FQCN, Level.ERROR, marker, msgSupplier, (Throwable) null); 757 } 758 759 @Override 760 public void error(final Marker marker, final String message, final Supplier<?>... paramSuppliers) { 761 logIfEnabled(FQCN, Level.ERROR, marker, message, paramSuppliers); 762 } 763 764 @Override 765 public void error(final Marker marker, final Supplier<?> msgSupplier, final Throwable t) { 766 logIfEnabled(FQCN, Level.ERROR, marker, msgSupplier, t); 767 } 768 769 @Override 770 public void error(final String message, final Supplier<?>... paramSuppliers) { 771 logIfEnabled(FQCN, Level.ERROR, null, message, paramSuppliers); 772 } 773 774 @Override 775 public void error(final Marker marker, final MessageSupplier msgSupplier) { 776 logIfEnabled(FQCN, Level.ERROR, marker, msgSupplier, (Throwable) null); 777 } 778 779 @Override 780 public void error(final Marker marker, final MessageSupplier msgSupplier, final Throwable t) { 781 logIfEnabled(FQCN, Level.ERROR, marker, msgSupplier, t); 782 } 783 784 @Override 785 public void error(final MessageSupplier msgSupplier) { 786 logIfEnabled(FQCN, Level.ERROR, null, msgSupplier, (Throwable) null); 787 } 788 789 @Override 790 public void error(final MessageSupplier msgSupplier, final Throwable t) { 791 logIfEnabled(FQCN, Level.ERROR, null, msgSupplier, t); 792 } 793 794 @Override 795 public void error(final Marker marker, final String message, final Object p0) { 796 logIfEnabled(FQCN, Level.ERROR, marker, message, p0); 797 } 798 799 @Override 800 public void error(final Marker marker, final String message, final Object p0, final Object p1) { 801 logIfEnabled(FQCN, Level.ERROR, marker, message, p0, p1); 802 } 803 804 @Override 805 public void error(final Marker marker, final String message, final Object p0, final Object p1, final Object p2) { 806 logIfEnabled(FQCN, Level.ERROR, marker, message, p0, p1, p2); 807 } 808 809 @Override 810 public void error(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 811 final Object p3) { 812 logIfEnabled(FQCN, Level.ERROR, marker, message, p0, p1, p2, p3); 813 } 814 815 @Override 816 public void error(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 817 final Object p3, final Object p4) { 818 logIfEnabled(FQCN, Level.ERROR, marker, message, p0, p1, p2, p3, p4); 819 } 820 821 @Override 822 public void error(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 823 final Object p3, final Object p4, final Object p5) { 824 logIfEnabled(FQCN, Level.ERROR, marker, message, p0, p1, p2, p3, p4, p5); 825 } 826 827 @Override 828 public void error(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 829 final Object p3, final Object p4, final Object p5, 830 final Object p6) { 831 logIfEnabled(FQCN, Level.ERROR, marker, message, p0, p1, p2, p3, p4, p5, p6); 832 } 833 834 @Override 835 public void error(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 836 final Object p3, final Object p4, final Object p5, 837 final Object p6, final Object p7) { 838 logIfEnabled(FQCN, Level.ERROR, marker, message, p0, p1, p2, p3, p4, p5, p6, p7); 839 } 840 841 @Override 842 public void error(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 843 final Object p3, final Object p4, final Object p5, 844 final Object p6, final Object p7, final Object p8) { 845 logIfEnabled(FQCN, Level.ERROR, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8); 846 } 847 848 @Override 849 public void error(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 850 final Object p3, final Object p4, final Object p5, 851 final Object p6, final Object p7, final Object p8, final Object p9) { 852 logIfEnabled(FQCN, Level.ERROR, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); 853 } 854 855 @Override 856 public void error(final String message, final Object p0) { 857 logIfEnabled(FQCN, Level.ERROR, null, message, p0); 858 } 859 860 @Override 861 public void error(final String message, final Object p0, final Object p1) { 862 logIfEnabled(FQCN, Level.ERROR, null, message, p0, p1); 863 } 864 865 @Override 866 public void error(final String message, final Object p0, final Object p1, final Object p2) { 867 logIfEnabled(FQCN, Level.ERROR, null, message, p0, p1, p2); 868 } 869 870 @Override 871 public void error(final String message, final Object p0, final Object p1, final Object p2, final Object p3) { 872 logIfEnabled(FQCN, Level.ERROR, null, message, p0, p1, p2, p3); 873 } 874 875 @Override 876 public void error(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 877 final Object p4) { 878 logIfEnabled(FQCN, Level.ERROR, null, message, p0, p1, p2, p3, p4); 879 } 880 881 @Override 882 public void error(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 883 final Object p4, final Object p5) { 884 logIfEnabled(FQCN, Level.ERROR, null, message, p0, p1, p2, p3, p4, p5); 885 } 886 887 @Override 888 public void error(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 889 final Object p4, final Object p5, final Object p6) { 890 logIfEnabled(FQCN, Level.ERROR, null, message, p0, p1, p2, p3, p4, p5, p6); 891 } 892 893 @Override 894 public void error(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 895 final Object p4, final Object p5, final Object p6, final Object p7) { 896 logIfEnabled(FQCN, Level.ERROR, null, message, p0, p1, p2, p3, p4, p5, p6, p7); 897 } 898 899 @Override 900 public void error(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 901 final Object p4, final Object p5, final Object p6, final Object p7, final Object p8) { 902 logIfEnabled(FQCN, Level.ERROR, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8); 903 } 904 905 @Override 906 public void error(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 907 final Object p4, final Object p5, final Object p6, final Object p7, final Object p8, final Object p9) { 908 logIfEnabled(FQCN, Level.ERROR, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); 909 } 910 911 @Deprecated 912 @Override 913 public void exit() { 914 exit(FQCN, (Object) null); 915 } 916 917 @Deprecated 918 @Override 919 public <R> R exit(final R result) { 920 return exit(FQCN, result); 921 } 922 923 /** 924 * Logs exiting from a method with the result and location information. 925 * 926 * @param fqcn The fully qualified class name of the <b>caller</b>. 927 * @param <R> The type of the parameter and object being returned. 928 * @param result The result being returned from the method call. 929 * @return the return value passed to this method. 930 */ 931 protected <R> R exit(final String fqcn, final R result) { 932 if (isEnabled(Level.TRACE, EXIT_MARKER, (CharSequence) null, null)) { 933 logMessageSafely(fqcn, Level.TRACE, EXIT_MARKER, exitMsg(null, result), null); 934 } 935 return result; 936 } 937 938 /** 939 * Logs exiting from a method with the result and location information. 940 * 941 * @param fqcn The fully qualified class name of the <b>caller</b>. 942 * @param <R> The type of the parameter and object being returned. 943 * @param result The result being returned from the method call. 944 * @return the return value passed to this method. 945 */ 946 protected <R> R exit(final String fqcn, final String format, final R result) { 947 if (isEnabled(Level.TRACE, EXIT_MARKER, (CharSequence) null, null)) { 948 logMessageSafely(fqcn, Level.TRACE, EXIT_MARKER, exitMsg(format, result), null); 949 } 950 return result; 951 } 952 953 protected Message exitMsg(final String format, final Object result) { 954 if (result == null) { 955 if (format == null) { 956 return messageFactory.newMessage("Exit"); 957 } 958 return messageFactory.newMessage("Exit: " + format); 959 } 960 if (format == null) { 961 return messageFactory.newMessage("Exit with(" + result + ')'); 962 } 963 return messageFactory.newMessage("Exit: " + format, result); 964 965 } 966 967 @Override 968 public void fatal(final Marker marker, final Message msg) { 969 logIfEnabled(FQCN, Level.FATAL, marker, msg, msg != null ? msg.getThrowable() : null); 970 } 971 972 @Override 973 public void fatal(final Marker marker, final Message msg, final Throwable t) { 974 logIfEnabled(FQCN, Level.FATAL, marker, msg, t); 975 } 976 977 @Override 978 public void fatal(final Marker marker, final CharSequence message) { 979 logIfEnabled(FQCN, Level.FATAL, marker, message, null); 980 } 981 982 @Override 983 public void fatal(final Marker marker, final CharSequence message, final Throwable t) { 984 logIfEnabled(FQCN, Level.FATAL, marker, message, t); 985 } 986 987 @Override 988 public void fatal(final Marker marker, final Object message) { 989 logIfEnabled(FQCN, Level.FATAL, marker, message, null); 990 } 991 992 @Override 993 public void fatal(final Marker marker, final Object message, final Throwable t) { 994 logIfEnabled(FQCN, Level.FATAL, marker, message, t); 995 } 996 997 @Override 998 public void fatal(final Marker marker, final String message) { 999 logIfEnabled(FQCN, Level.FATAL, marker, message, (Throwable) null); 1000 } 1001 1002 @Override 1003 public void fatal(final Marker marker, final String message, final Object... params) { 1004 logIfEnabled(FQCN, Level.FATAL, marker, message, params); 1005 } 1006 1007 @Override 1008 public void fatal(final Marker marker, final String message, final Throwable t) { 1009 logIfEnabled(FQCN, Level.FATAL, marker, message, t); 1010 } 1011 1012 @Override 1013 public void fatal(final Message msg) { 1014 logIfEnabled(FQCN, Level.FATAL, null, msg, msg != null ? msg.getThrowable() : null); 1015 } 1016 1017 @Override 1018 public void fatal(final Message msg, final Throwable t) { 1019 logIfEnabled(FQCN, Level.FATAL, null, msg, t); 1020 } 1021 1022 @Override 1023 public void fatal(final CharSequence message) { 1024 logIfEnabled(FQCN, Level.FATAL, null, message, null); 1025 } 1026 1027 @Override 1028 public void fatal(final CharSequence message, final Throwable t) { 1029 logIfEnabled(FQCN, Level.FATAL, null, message, t); 1030 } 1031 1032 @Override 1033 public void fatal(final Object message) { 1034 logIfEnabled(FQCN, Level.FATAL, null, message, null); 1035 } 1036 1037 @Override 1038 public void fatal(final Object message, final Throwable t) { 1039 logIfEnabled(FQCN, Level.FATAL, null, message, t); 1040 } 1041 1042 @Override 1043 public void fatal(final String message) { 1044 logIfEnabled(FQCN, Level.FATAL, null, message, (Throwable) null); 1045 } 1046 1047 @Override 1048 public void fatal(final String message, final Object... params) { 1049 logIfEnabled(FQCN, Level.FATAL, null, message, params); 1050 } 1051 1052 @Override 1053 public void fatal(final String message, final Throwable t) { 1054 logIfEnabled(FQCN, Level.FATAL, null, message, t); 1055 } 1056 1057 @Override 1058 public void fatal(final Supplier<?> msgSupplier) { 1059 logIfEnabled(FQCN, Level.FATAL, null, msgSupplier, (Throwable) null); 1060 } 1061 1062 @Override 1063 public void fatal(final Supplier<?> msgSupplier, final Throwable t) { 1064 logIfEnabled(FQCN, Level.FATAL, null, msgSupplier, t); 1065 } 1066 1067 @Override 1068 public void fatal(final Marker marker, final Supplier<?> msgSupplier) { 1069 logIfEnabled(FQCN, Level.FATAL, marker, msgSupplier, (Throwable) null); 1070 } 1071 1072 @Override 1073 public void fatal(final Marker marker, final String message, final Supplier<?>... paramSuppliers) { 1074 logIfEnabled(FQCN, Level.FATAL, marker, message, paramSuppliers); 1075 } 1076 1077 @Override 1078 public void fatal(final Marker marker, final Supplier<?> msgSupplier, final Throwable t) { 1079 logIfEnabled(FQCN, Level.FATAL, marker, msgSupplier, t); 1080 } 1081 1082 @Override 1083 public void fatal(final String message, final Supplier<?>... paramSuppliers) { 1084 logIfEnabled(FQCN, Level.FATAL, null, message, paramSuppliers); 1085 } 1086 1087 @Override 1088 public void fatal(final Marker marker, final MessageSupplier msgSupplier) { 1089 logIfEnabled(FQCN, Level.FATAL, marker, msgSupplier, (Throwable) null); 1090 } 1091 1092 @Override 1093 public void fatal(final Marker marker, final MessageSupplier msgSupplier, final Throwable t) { 1094 logIfEnabled(FQCN, Level.FATAL, marker, msgSupplier, t); 1095 } 1096 1097 @Override 1098 public void fatal(final MessageSupplier msgSupplier) { 1099 logIfEnabled(FQCN, Level.FATAL, null, msgSupplier, (Throwable) null); 1100 } 1101 1102 @Override 1103 public void fatal(final MessageSupplier msgSupplier, final Throwable t) { 1104 logIfEnabled(FQCN, Level.FATAL, null, msgSupplier, t); 1105 } 1106 1107 @Override 1108 public void fatal(final Marker marker, final String message, final Object p0) { 1109 logIfEnabled(FQCN, Level.FATAL, marker, message, p0); 1110 } 1111 1112 @Override 1113 public void fatal(final Marker marker, final String message, final Object p0, final Object p1) { 1114 logIfEnabled(FQCN, Level.FATAL, marker, message, p0, p1); 1115 } 1116 1117 @Override 1118 public void fatal(final Marker marker, final String message, final Object p0, final Object p1, final Object p2) { 1119 logIfEnabled(FQCN, Level.FATAL, marker, message, p0, p1, p2); 1120 } 1121 1122 @Override 1123 public void fatal(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 1124 final Object p3) { 1125 logIfEnabled(FQCN, Level.FATAL, marker, message, p0, p1, p2, p3); 1126 } 1127 1128 @Override 1129 public void fatal(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 1130 final Object p3, final Object p4) { 1131 logIfEnabled(FQCN, Level.FATAL, marker, message, p0, p1, p2, p3, p4); 1132 } 1133 1134 @Override 1135 public void fatal(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 1136 final Object p3, final Object p4, final Object p5) { 1137 logIfEnabled(FQCN, Level.FATAL, marker, message, p0, p1, p2, p3, p4, p5); 1138 } 1139 1140 @Override 1141 public void fatal(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 1142 final Object p3, final Object p4, final Object p5, final Object p6) { 1143 logIfEnabled(FQCN, Level.FATAL, marker, message, p0, p1, p2, p3, p4, p5, p6); 1144 } 1145 1146 @Override 1147 public void fatal(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 1148 final Object p3, final Object p4, final Object p5, final Object p6, final Object p7) { 1149 logIfEnabled(FQCN, Level.FATAL, marker, message, p0, p1, p2, p3, p4, p5, p6, p7); 1150 } 1151 1152 @Override 1153 public void fatal(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 1154 final Object p3, final Object p4, final Object p5, 1155 final Object p6, final Object p7, final Object p8) { 1156 logIfEnabled(FQCN, Level.FATAL, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8); 1157 } 1158 1159 @Override 1160 public void fatal(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 1161 final Object p3, final Object p4, final Object p5, 1162 final Object p6, final Object p7, final Object p8, final Object p9) { 1163 logIfEnabled(FQCN, Level.FATAL, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); 1164 } 1165 1166 @Override 1167 public void fatal(final String message, final Object p0) { 1168 logIfEnabled(FQCN, Level.FATAL, null, message, p0); 1169 } 1170 1171 @Override 1172 public void fatal(final String message, final Object p0, final Object p1) { 1173 logIfEnabled(FQCN, Level.FATAL, null, message, p0, p1); 1174 } 1175 1176 @Override 1177 public void fatal(final String message, final Object p0, final Object p1, final Object p2) { 1178 logIfEnabled(FQCN, Level.FATAL, null, message, p0, p1, p2); 1179 } 1180 1181 @Override 1182 public void fatal(final String message, final Object p0, final Object p1, final Object p2, final Object p3) { 1183 logIfEnabled(FQCN, Level.FATAL, null, message, p0, p1, p2, p3); 1184 } 1185 1186 @Override 1187 public void fatal(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 1188 final Object p4) { 1189 logIfEnabled(FQCN, Level.FATAL, null, message, p0, p1, p2, p3, p4); 1190 } 1191 1192 @Override 1193 public void fatal(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 1194 final Object p4, final Object p5) { 1195 logIfEnabled(FQCN, Level.FATAL, null, message, p0, p1, p2, p3, p4, p5); 1196 } 1197 1198 @Override 1199 public void fatal(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 1200 final Object p4, final Object p5, final Object p6) { 1201 logIfEnabled(FQCN, Level.FATAL, null, message, p0, p1, p2, p3, p4, p5, p6); 1202 } 1203 1204 @Override 1205 public void fatal(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 1206 final Object p4, final Object p5, final Object p6, final Object p7) { 1207 logIfEnabled(FQCN, Level.FATAL, null, message, p0, p1, p2, p3, p4, p5, p6, p7); 1208 } 1209 1210 @Override 1211 public void fatal(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 1212 final Object p4, final Object p5, final Object p6, final Object p7, final Object p8) { 1213 logIfEnabled(FQCN, Level.FATAL, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8); 1214 } 1215 1216 @Override 1217 public void fatal(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 1218 final Object p4, final Object p5, final Object p6, 1219 final Object p7, final Object p8, final Object p9) { 1220 logIfEnabled(FQCN, Level.FATAL, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); 1221 } 1222 1223 @SuppressWarnings("unchecked") 1224 @Override 1225 public <MF extends MessageFactory> MF getMessageFactory() { 1226 return (MF) messageFactory; 1227 } 1228 1229 @Override 1230 public String getName() { 1231 return name; 1232 } 1233 1234 @Override 1235 public void info(final Marker marker, final Message msg) { 1236 logIfEnabled(FQCN, Level.INFO, marker, msg, msg != null ? msg.getThrowable() : null); 1237 } 1238 1239 @Override 1240 public void info(final Marker marker, final Message msg, final Throwable t) { 1241 logIfEnabled(FQCN, Level.INFO, marker, msg, t); 1242 } 1243 1244 @Override 1245 public void info(final Marker marker, final CharSequence message) { 1246 logIfEnabled(FQCN, Level.INFO, marker, message, null); 1247 } 1248 1249 @Override 1250 public void info(final Marker marker, final CharSequence message, final Throwable t) { 1251 logIfEnabled(FQCN, Level.INFO, marker, message, t); 1252 } 1253 1254 @Override 1255 public void info(final Marker marker, final Object message) { 1256 logIfEnabled(FQCN, Level.INFO, marker, message, null); 1257 } 1258 1259 @Override 1260 public void info(final Marker marker, final Object message, final Throwable t) { 1261 logIfEnabled(FQCN, Level.INFO, marker, message, t); 1262 } 1263 1264 @Override 1265 public void info(final Marker marker, final String message) { 1266 logIfEnabled(FQCN, Level.INFO, marker, message, (Throwable) null); 1267 } 1268 1269 @Override 1270 public void info(final Marker marker, final String message, final Object... params) { 1271 logIfEnabled(FQCN, Level.INFO, marker, message, params); 1272 } 1273 1274 @Override 1275 public void info(final Marker marker, final String message, final Throwable t) { 1276 logIfEnabled(FQCN, Level.INFO, marker, message, t); 1277 } 1278 1279 @Override 1280 public void info(final Message msg) { 1281 logIfEnabled(FQCN, Level.INFO, null, msg, msg != null ? msg.getThrowable() : null); 1282 } 1283 1284 @Override 1285 public void info(final Message msg, final Throwable t) { 1286 logIfEnabled(FQCN, Level.INFO, null, msg, t); 1287 } 1288 1289 @Override 1290 public void info(final CharSequence message) { 1291 logIfEnabled(FQCN, Level.INFO, null, message, null); 1292 } 1293 1294 @Override 1295 public void info(final CharSequence message, final Throwable t) { 1296 logIfEnabled(FQCN, Level.INFO, null, message, t); 1297 } 1298 1299 @Override 1300 public void info(final Object message) { 1301 logIfEnabled(FQCN, Level.INFO, null, message, null); 1302 } 1303 1304 @Override 1305 public void info(final Object message, final Throwable t) { 1306 logIfEnabled(FQCN, Level.INFO, null, message, t); 1307 } 1308 1309 @Override 1310 public void info(final String message) { 1311 logIfEnabled(FQCN, Level.INFO, null, message, (Throwable) null); 1312 } 1313 1314 @Override 1315 public void info(final String message, final Object... params) { 1316 logIfEnabled(FQCN, Level.INFO, null, message, params); 1317 } 1318 1319 @Override 1320 public void info(final String message, final Throwable t) { 1321 logIfEnabled(FQCN, Level.INFO, null, message, t); 1322 } 1323 1324 @Override 1325 public void info(final Supplier<?> msgSupplier) { 1326 logIfEnabled(FQCN, Level.INFO, null, msgSupplier, (Throwable) null); 1327 } 1328 1329 @Override 1330 public void info(final Supplier<?> msgSupplier, final Throwable t) { 1331 logIfEnabled(FQCN, Level.INFO, null, msgSupplier, t); 1332 } 1333 1334 @Override 1335 public void info(final Marker marker, final Supplier<?> msgSupplier) { 1336 logIfEnabled(FQCN, Level.INFO, marker, msgSupplier, (Throwable) null); 1337 } 1338 1339 @Override 1340 public void info(final Marker marker, final String message, final Supplier<?>... paramSuppliers) { 1341 logIfEnabled(FQCN, Level.INFO, marker, message, paramSuppliers); 1342 } 1343 1344 @Override 1345 public void info(final Marker marker, final Supplier<?> msgSupplier, final Throwable t) { 1346 logIfEnabled(FQCN, Level.INFO, marker, msgSupplier, t); 1347 } 1348 1349 @Override 1350 public void info(final String message, final Supplier<?>... paramSuppliers) { 1351 logIfEnabled(FQCN, Level.INFO, null, message, paramSuppliers); 1352 } 1353 1354 @Override 1355 public void info(final Marker marker, final MessageSupplier msgSupplier) { 1356 logIfEnabled(FQCN, Level.INFO, marker, msgSupplier, (Throwable) null); 1357 } 1358 1359 @Override 1360 public void info(final Marker marker, final MessageSupplier msgSupplier, final Throwable t) { 1361 logIfEnabled(FQCN, Level.INFO, marker, msgSupplier, t); 1362 } 1363 1364 @Override 1365 public void info(final MessageSupplier msgSupplier) { 1366 logIfEnabled(FQCN, Level.INFO, null, msgSupplier, (Throwable) null); 1367 } 1368 1369 @Override 1370 public void info(final MessageSupplier msgSupplier, final Throwable t) { 1371 logIfEnabled(FQCN, Level.INFO, null, msgSupplier, t); 1372 } 1373 1374 @Override 1375 public void info(final Marker marker, final String message, final Object p0) { 1376 logIfEnabled(FQCN, Level.INFO, marker, message, p0); 1377 } 1378 1379 @Override 1380 public void info(final Marker marker, final String message, final Object p0, final Object p1) { 1381 logIfEnabled(FQCN, Level.INFO, marker, message, p0, p1); 1382 } 1383 1384 @Override 1385 public void info(final Marker marker, final String message, final Object p0, final Object p1, final Object p2) { 1386 logIfEnabled(FQCN, Level.INFO, marker, message, p0, p1, p2); 1387 } 1388 1389 @Override 1390 public void info(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 1391 final Object p3) { 1392 logIfEnabled(FQCN, Level.INFO, marker, message, p0, p1, p2, p3); 1393 } 1394 1395 @Override 1396 public void info(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 1397 final Object p3, final Object p4) { 1398 logIfEnabled(FQCN, Level.INFO, marker, message, p0, p1, p2, p3, p4); 1399 } 1400 1401 @Override 1402 public void info(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 1403 final Object p3, final Object p4, final Object p5) { 1404 logIfEnabled(FQCN, Level.INFO, marker, message, p0, p1, p2, p3, p4, p5); 1405 } 1406 1407 @Override 1408 public void info(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 1409 final Object p3, final Object p4, final Object p5, final Object p6) { 1410 logIfEnabled(FQCN, Level.INFO, marker, message, p0, p1, p2, p3, p4, p5, p6); 1411 } 1412 1413 @Override 1414 public void info(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 1415 final Object p3, final Object p4, final Object p5, final Object p6, final Object p7) { 1416 logIfEnabled(FQCN, Level.INFO, marker, message, p0, p1, p2, p3, p4, p5, p6, p7); 1417 } 1418 1419 @Override 1420 public void info(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 1421 final Object p3, final Object p4, final Object p5, 1422 final Object p6, final Object p7, final Object p8) { 1423 logIfEnabled(FQCN, Level.INFO, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8); 1424 } 1425 1426 @Override 1427 public void info(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 1428 final Object p3, final Object p4, final Object p5, 1429 final Object p6, final Object p7, final Object p8, final Object p9) { 1430 logIfEnabled(FQCN, Level.INFO, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); 1431 } 1432 1433 @Override 1434 public void info(final String message, final Object p0) { 1435 logIfEnabled(FQCN, Level.INFO, null, message, p0); 1436 } 1437 1438 @Override 1439 public void info(final String message, final Object p0, final Object p1) { 1440 logIfEnabled(FQCN, Level.INFO, null, message, p0, p1); 1441 } 1442 1443 @Override 1444 public void info(final String message, final Object p0, final Object p1, final Object p2) { 1445 logIfEnabled(FQCN, Level.INFO, null, message, p0, p1, p2); 1446 } 1447 1448 @Override 1449 public void info(final String message, final Object p0, final Object p1, final Object p2, final Object p3) { 1450 logIfEnabled(FQCN, Level.INFO, null, message, p0, p1, p2, p3); 1451 } 1452 1453 @Override 1454 public void info(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 1455 final Object p4) { 1456 logIfEnabled(FQCN, Level.INFO, null, message, p0, p1, p2, p3, p4); 1457 } 1458 1459 @Override 1460 public void info(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 1461 final Object p4, final Object p5) { 1462 logIfEnabled(FQCN, Level.INFO, null, message, p0, p1, p2, p3, p4, p5); 1463 } 1464 1465 @Override 1466 public void info(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 1467 final Object p4, final Object p5, final Object p6) { 1468 logIfEnabled(FQCN, Level.INFO, null, message, p0, p1, p2, p3, p4, p5, p6); 1469 } 1470 1471 @Override 1472 public void info(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 1473 final Object p4, final Object p5, final Object p6, 1474 final Object p7) { 1475 logIfEnabled(FQCN, Level.INFO, null, message, p0, p1, p2, p3, p4, p5, p6, p7); 1476 } 1477 1478 @Override 1479 public void info(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 1480 final Object p4, final Object p5, final Object p6, 1481 final Object p7, final Object p8) { 1482 logIfEnabled(FQCN, Level.INFO, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8); 1483 } 1484 1485 @Override 1486 public void info(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 1487 final Object p4, final Object p5, final Object p6, 1488 final Object p7, final Object p8, final Object p9) { 1489 logIfEnabled(FQCN, Level.INFO, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); 1490 } 1491 1492 @Override 1493 public boolean isDebugEnabled() { 1494 return isEnabled(Level.DEBUG, null, null); 1495 } 1496 1497 @Override 1498 public boolean isDebugEnabled(final Marker marker) { 1499 return isEnabled(Level.DEBUG, marker, (Object) null, null); 1500 } 1501 1502 @Override 1503 public boolean isEnabled(final Level level) { 1504 return isEnabled(level, null, (Object) null, null); 1505 } 1506 1507 @Override 1508 public boolean isEnabled(final Level level, final Marker marker) { 1509 return isEnabled(level, marker, (Object) null, null); 1510 } 1511 1512 @Override 1513 public boolean isErrorEnabled() { 1514 return isEnabled(Level.ERROR, null, (Object) null, null); 1515 } 1516 1517 @Override 1518 public boolean isErrorEnabled(final Marker marker) { 1519 return isEnabled(Level.ERROR, marker, (Object) null, null); 1520 } 1521 1522 @Override 1523 public boolean isFatalEnabled() { 1524 return isEnabled(Level.FATAL, null, (Object) null, null); 1525 } 1526 1527 @Override 1528 public boolean isFatalEnabled(final Marker marker) { 1529 return isEnabled(Level.FATAL, marker, (Object) null, null); 1530 } 1531 1532 @Override 1533 public boolean isInfoEnabled() { 1534 return isEnabled(Level.INFO, null, (Object) null, null); 1535 } 1536 1537 @Override 1538 public boolean isInfoEnabled(final Marker marker) { 1539 return isEnabled(Level.INFO, marker, (Object) null, null); 1540 } 1541 1542 @Override 1543 public boolean isTraceEnabled() { 1544 return isEnabled(Level.TRACE, null, (Object) null, null); 1545 } 1546 1547 @Override 1548 public boolean isTraceEnabled(final Marker marker) { 1549 return isEnabled(Level.TRACE, marker, (Object) null, null); 1550 } 1551 1552 @Override 1553 public boolean isWarnEnabled() { 1554 return isEnabled(Level.WARN, null, (Object) null, null); 1555 } 1556 1557 @Override 1558 public boolean isWarnEnabled(final Marker marker) { 1559 return isEnabled(Level.WARN, marker, (Object) null, null); 1560 } 1561 1562 @Override 1563 public void log(final Level level, final Marker marker, final Message msg) { 1564 logIfEnabled(FQCN, level, marker, msg, msg != null ? msg.getThrowable() : null); 1565 } 1566 1567 @Override 1568 public void log(final Level level, final Marker marker, final Message msg, final Throwable t) { 1569 logIfEnabled(FQCN, level, marker, msg, t); 1570 } 1571 1572 @Override 1573 public void log(final Level level, final Marker marker, final CharSequence message) { 1574 logIfEnabled(FQCN, level, marker, message, (Throwable) null); 1575 } 1576 1577 @Override 1578 public void log(final Level level, final Marker marker, final CharSequence message, final Throwable t) { 1579 if (isEnabled(level, marker, message, t)) { 1580 logMessage(FQCN, level, marker, message, t); 1581 } 1582 } 1583 1584 @Override 1585 public void log(final Level level, final Marker marker, final Object message) { 1586 logIfEnabled(FQCN, level, marker, message, (Throwable) null); 1587 } 1588 1589 @Override 1590 public void log(final Level level, final Marker marker, final Object message, final Throwable t) { 1591 if (isEnabled(level, marker, message, t)) { 1592 logMessage(FQCN, level, marker, message, t); 1593 } 1594 } 1595 1596 @Override 1597 public void log(final Level level, final Marker marker, final String message) { 1598 logIfEnabled(FQCN, level, marker, message, (Throwable) null); 1599 } 1600 1601 @Override 1602 public void log(final Level level, final Marker marker, final String message, final Object... params) { 1603 logIfEnabled(FQCN, level, marker, message, params); 1604 } 1605 1606 @Override 1607 public void log(final Level level, final Marker marker, final String message, final Throwable t) { 1608 logIfEnabled(FQCN, level, marker, message, t); 1609 } 1610 1611 @Override 1612 public void log(final Level level, final Message msg) { 1613 logIfEnabled(FQCN, level, null, msg, msg != null ? msg.getThrowable() : null); 1614 } 1615 1616 @Override 1617 public void log(final Level level, final Message msg, final Throwable t) { 1618 logIfEnabled(FQCN, level, null, msg, t); 1619 } 1620 1621 @Override 1622 public void log(final Level level, final CharSequence message) { 1623 logIfEnabled(FQCN, level, null, message, null); 1624 } 1625 1626 @Override 1627 public void log(final Level level, final CharSequence message, final Throwable t) { 1628 logIfEnabled(FQCN, level, null, message, t); 1629 } 1630 1631 @Override 1632 public void log(final Level level, final Object message) { 1633 logIfEnabled(FQCN, level, null, message, null); 1634 } 1635 1636 @Override 1637 public void log(final Level level, final Object message, final Throwable t) { 1638 logIfEnabled(FQCN, level, null, message, t); 1639 } 1640 1641 @Override 1642 public void log(final Level level, final String message) { 1643 logIfEnabled(FQCN, level, null, message, (Throwable) null); 1644 } 1645 1646 @Override 1647 public void log(final Level level, final String message, final Object... params) { 1648 logIfEnabled(FQCN, level, null, message, params); 1649 } 1650 1651 @Override 1652 public void log(final Level level, final String message, final Throwable t) { 1653 logIfEnabled(FQCN, level, null, message, t); 1654 } 1655 1656 @Override 1657 public void log(final Level level, final Supplier<?> msgSupplier) { 1658 logIfEnabled(FQCN, level, null, msgSupplier, (Throwable) null); 1659 } 1660 1661 @Override 1662 public void log(final Level level, final Supplier<?> msgSupplier, final Throwable t) { 1663 logIfEnabled(FQCN, level, null, msgSupplier, t); 1664 } 1665 1666 @Override 1667 public void log(final Level level, final Marker marker, final Supplier<?> msgSupplier) { 1668 logIfEnabled(FQCN, level, marker, msgSupplier, (Throwable) null); 1669 } 1670 1671 @Override 1672 public void log(final Level level, final Marker marker, final String message, final Supplier<?>... paramSuppliers) { 1673 logIfEnabled(FQCN, level, marker, message, paramSuppliers); 1674 } 1675 1676 @Override 1677 public void log(final Level level, final Marker marker, final Supplier<?> msgSupplier, final Throwable t) { 1678 logIfEnabled(FQCN, level, marker, msgSupplier, t); 1679 } 1680 1681 @Override 1682 public void log(final Level level, final String message, final Supplier<?>... paramSuppliers) { 1683 logIfEnabled(FQCN, level, null, message, paramSuppliers); 1684 } 1685 1686 @Override 1687 public void log(final Level level, final Marker marker, final MessageSupplier msgSupplier) { 1688 logIfEnabled(FQCN, level, marker, msgSupplier, (Throwable) null); 1689 } 1690 1691 @Override 1692 public void log(final Level level, final Marker marker, final MessageSupplier msgSupplier, final Throwable t) { 1693 logIfEnabled(FQCN, level, marker, msgSupplier, t); 1694 } 1695 1696 @Override 1697 public void log(final Level level, final MessageSupplier msgSupplier) { 1698 logIfEnabled(FQCN, level, null, msgSupplier, (Throwable) null); 1699 } 1700 1701 @Override 1702 public void log(final Level level, final MessageSupplier msgSupplier, final Throwable t) { 1703 logIfEnabled(FQCN, level, null, msgSupplier, t); 1704 } 1705 1706 @Override 1707 public void log(final Level level, final Marker marker, final String message, final Object p0) { 1708 logIfEnabled(FQCN, level, marker, message, p0); 1709 } 1710 1711 @Override 1712 public void log(final Level level, final Marker marker, final String message, final Object p0, final Object p1) { 1713 logIfEnabled(FQCN, level, marker, message, p0, p1); 1714 } 1715 1716 @Override 1717 public void log(final Level level, final Marker marker, final String message, final Object p0, final Object p1, 1718 final Object p2) { 1719 logIfEnabled(FQCN, level, marker, message, p0, p1, p2); 1720 } 1721 1722 @Override 1723 public void log(final Level level, final Marker marker, final String message, final Object p0, final Object p1, 1724 final Object p2, final Object p3) { 1725 logIfEnabled(FQCN, level, marker, message, p0, p1, p2, p3); 1726 } 1727 1728 @Override 1729 public void log(final Level level, final Marker marker, final String message, final Object p0, final Object p1, 1730 final Object p2, final Object p3, final Object p4) { 1731 logIfEnabled(FQCN, level, marker, message, p0, p1, p2, p3, p4); 1732 } 1733 1734 @Override 1735 public void log(final Level level, final Marker marker, final String message, final Object p0, final Object p1, 1736 final Object p2, final Object p3, final Object p4, final Object p5) { 1737 logIfEnabled(FQCN, level, marker, message, p0, p1, p2, p3, p4, p5); 1738 } 1739 1740 @Override 1741 public void log(final Level level, final Marker marker, final String message, final Object p0, final Object p1, 1742 final Object p2, final Object p3, final Object p4, final Object p5, final Object p6) { 1743 logIfEnabled(FQCN, level, marker, message, p0, p1, p2, p3, p4, p5, p6); 1744 } 1745 1746 @Override 1747 public void log(final Level level, final Marker marker, final String message, final Object p0, final Object p1, 1748 final Object p2, final Object p3, final Object p4, final Object p5, 1749 final Object p6, final Object p7) { 1750 logIfEnabled(FQCN, level, marker, message, p0, p1, p2, p3, p4, p5, p6, p7); 1751 } 1752 1753 @Override 1754 public void log(final Level level, final Marker marker, final String message, final Object p0, final Object p1, 1755 final Object p2, final Object p3, final Object p4, final Object p5, 1756 final Object p6, final Object p7, final Object p8) { 1757 logIfEnabled(FQCN, level, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8); 1758 } 1759 1760 @Override 1761 public void log(final Level level, final Marker marker, final String message, final Object p0, final Object p1, 1762 final Object p2, final Object p3, final Object p4, final Object p5, 1763 final Object p6, final Object p7, final Object p8, final Object p9) { 1764 logIfEnabled(FQCN, level, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); 1765 } 1766 1767 @Override 1768 public void log(final Level level, final String message, final Object p0) { 1769 logIfEnabled(FQCN, level, null, message, p0); 1770 } 1771 1772 @Override 1773 public void log(final Level level, final String message, final Object p0, final Object p1) { 1774 logIfEnabled(FQCN, level, null, message, p0, p1); 1775 } 1776 1777 @Override 1778 public void log(final Level level, final String message, final Object p0, final Object p1, final Object p2) { 1779 logIfEnabled(FQCN, level, null, message, p0, p1, p2); 1780 } 1781 1782 @Override 1783 public void log(final Level level, final String message, final Object p0, final Object p1, final Object p2, final Object p3) { 1784 logIfEnabled(FQCN, level, null, message, p0, p1, p2, p3); 1785 } 1786 1787 @Override 1788 public void log(final Level level, final String message, final Object p0, final Object p1, final Object p2, final Object p3, 1789 final Object p4) { 1790 logIfEnabled(FQCN, level, null, message, p0, p1, p2, p3, p4); 1791 } 1792 1793 @Override 1794 public void log(final Level level, final String message, final Object p0, final Object p1, final Object p2, final Object p3, 1795 final Object p4, final Object p5) { 1796 logIfEnabled(FQCN, level, null, message, p0, p1, p2, p3, p4, p5); 1797 } 1798 1799 @Override 1800 public void log(final Level level, final String message, final Object p0, final Object p1, final Object p2, final Object p3, 1801 final Object p4, final Object p5, final Object p6) { 1802 logIfEnabled(FQCN, level, null, message, p0, p1, p2, p3, p4, p5, p6); 1803 } 1804 1805 @Override 1806 public void log(final Level level, final String message, final Object p0, final Object p1, final Object p2, final Object p3, 1807 final Object p4, final Object p5, final Object p6, final Object p7) { 1808 logIfEnabled(FQCN, level, null, message, p0, p1, p2, p3, p4, p5, p6, p7); 1809 } 1810 1811 @Override 1812 public void log(final Level level, final String message, final Object p0, final Object p1, final Object p2, final Object p3, 1813 final Object p4, final Object p5, final Object p6, final Object p7, final Object p8) { 1814 logIfEnabled(FQCN, level, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8); 1815 } 1816 1817 @Override 1818 public void log(final Level level, final String message, final Object p0, final Object p1, final Object p2, final Object p3, 1819 final Object p4, final Object p5, final Object p6, final Object p7, final Object p8, final Object p9) { 1820 logIfEnabled(FQCN, level, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); 1821 } 1822 1823 @Override 1824 public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final Message msg, 1825 final Throwable t) { 1826 if (isEnabled(level, marker, msg, t)) { 1827 logMessageSafely(fqcn, level, marker, msg, t); 1828 } 1829 } 1830 1831 @Override 1832 public void logIfEnabled(final String fqcn, final Level level, final Marker marker, 1833 final MessageSupplier msgSupplier, final Throwable t) { 1834 if (isEnabled(level, marker, msgSupplier, t)) { 1835 logMessage(fqcn, level, marker, msgSupplier, t); 1836 } 1837 } 1838 1839 @Override 1840 public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final Object message, 1841 final Throwable t) { 1842 if (isEnabled(level, marker, message, t)) { 1843 logMessage(fqcn, level, marker, message, t); 1844 } 1845 } 1846 1847 @Override 1848 public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final CharSequence message, 1849 final Throwable t) { 1850 if (isEnabled(level, marker, message, t)) { 1851 logMessage(fqcn, level, marker, message, t); 1852 } 1853 } 1854 1855 @Override 1856 public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final Supplier<?> msgSupplier, 1857 final Throwable t) { 1858 if (isEnabled(level, marker, msgSupplier, t)) { 1859 logMessage(fqcn, level, marker, msgSupplier, t); 1860 } 1861 } 1862 1863 @Override 1864 public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message) { 1865 if (isEnabled(level, marker, message)) { 1866 logMessage(fqcn, level, marker, message); 1867 } 1868 } 1869 1870 @Override 1871 public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message, 1872 final Supplier<?>... paramSuppliers) { 1873 if (isEnabled(level, marker, message)) { 1874 logMessage(fqcn, level, marker, message, paramSuppliers); 1875 } 1876 } 1877 1878 @Override 1879 public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message, 1880 final Object... params) { 1881 if (isEnabled(level, marker, message, params)) { 1882 logMessage(fqcn, level, marker, message, params); 1883 } 1884 } 1885 1886 @Override 1887 public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message, 1888 final Object p0) { 1889 if (isEnabled(level, marker, message, p0)) { 1890 logMessage(fqcn, level, marker, message, p0); 1891 } 1892 } 1893 1894 @Override 1895 public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message, 1896 final Object p0, final Object p1) { 1897 if (isEnabled(level, marker, message, p0, p1)) { 1898 logMessage(fqcn, level, marker, message, p0, p1); 1899 } 1900 } 1901 1902 @Override 1903 public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message, 1904 final Object p0, final Object p1, final Object p2) { 1905 if (isEnabled(level, marker, message, p0, p1, p2)) { 1906 logMessage(fqcn, level, marker, message, p0, p1, p2); 1907 } 1908 } 1909 1910 @Override 1911 public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message, 1912 final Object p0, final Object p1, final Object p2, final Object p3) { 1913 if (isEnabled(level, marker, message, p0, p1, p2, p3)) { 1914 logMessage(fqcn, level, marker, message, p0, p1, p2, p3); 1915 } 1916 } 1917 1918 @Override 1919 public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message, 1920 final Object p0, final Object p1, final Object p2, final Object p3, final Object p4) { 1921 if (isEnabled(level, marker, message, p0, p1, p2, p3, p4)) { 1922 logMessage(fqcn, level, marker, message, p0, p1, p2, p3, p4); 1923 } 1924 } 1925 1926 @Override 1927 public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message, 1928 final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5) { 1929 if (isEnabled(level, marker, message, p0, p1, p2, p3, p4, p5)) { 1930 logMessage(fqcn, level, marker, message, p0, p1, p2, p3, p4, p5); 1931 } 1932 } 1933 1934 @Override 1935 public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message, 1936 final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5, 1937 final Object p6) { 1938 if (isEnabled(level, marker, message, p0, p1, p2, p3, p4, p5, p6)) { 1939 logMessage(fqcn, level, marker, message, p0, p1, p2, p3, p4, p5, p6); 1940 } 1941 } 1942 1943 @Override 1944 public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message, 1945 final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5, 1946 final Object p6, final Object p7) { 1947 if (isEnabled(level, marker, message, p0, p1, p2, p3, p4, p5, p6, p7)) { 1948 logMessage(fqcn, level, marker, message, p0, p1, p2, p3, p4, p5, p6, p7); 1949 } 1950 } 1951 1952 @Override 1953 public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message, 1954 final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5, 1955 final Object p6, final Object p7, final Object p8) { 1956 if (isEnabled(level, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8)) { 1957 logMessage(fqcn, level, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8); 1958 } 1959 } 1960 1961 @Override 1962 public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message, 1963 final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5, 1964 final Object p6, final Object p7, final Object p8, final Object p9) { 1965 if (isEnabled(level, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)) { 1966 logMessage(fqcn, level, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); 1967 } 1968 } 1969 1970 @Override 1971 public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message, 1972 final Throwable t) { 1973 if (isEnabled(level, marker, message, t)) { 1974 logMessage(fqcn, level, marker, message, t); 1975 } 1976 } 1977 1978 protected void logMessage(final String fqcn, final Level level, final Marker marker, final CharSequence message, 1979 final Throwable t) { 1980 logMessageSafely(fqcn, level, marker, messageFactory.newMessage(message), t); 1981 } 1982 1983 protected void logMessage(final String fqcn, final Level level, final Marker marker, final Object message, 1984 final Throwable t) { 1985 logMessageSafely(fqcn, level, marker, messageFactory.newMessage(message), t); 1986 } 1987 1988 protected void logMessage(final String fqcn, final Level level, final Marker marker, 1989 final MessageSupplier msgSupplier, final Throwable t) { 1990 final Message message = LambdaUtil.get(msgSupplier); 1991 logMessageSafely(fqcn, level, marker, message, (t == null && message != null) ? message.getThrowable() : t); 1992 } 1993 1994 protected void logMessage(final String fqcn, final Level level, final Marker marker, final Supplier<?> msgSupplier, 1995 final Throwable t) { 1996 final Message message = LambdaUtil.getMessage(msgSupplier, messageFactory); 1997 logMessageSafely(fqcn, level, marker, message, (t == null && message != null) ? message.getThrowable() : t); 1998 } 1999 2000 protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message, 2001 final Throwable t) { 2002 logMessageSafely(fqcn, level, marker, messageFactory.newMessage(message), t); 2003 } 2004 2005 protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message) { 2006 final Message msg = messageFactory.newMessage(message); 2007 logMessageSafely(fqcn, level, marker, msg, msg.getThrowable()); 2008 } 2009 2010 protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message, 2011 final Object... params) { 2012 final Message msg = messageFactory.newMessage(message, params); 2013 logMessageSafely(fqcn, level, marker, msg, msg.getThrowable()); 2014 } 2015 2016 protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message, 2017 final Object p0) { 2018 final Message msg = messageFactory.newMessage(message, p0); 2019 logMessageSafely(fqcn, level, marker, msg, msg.getThrowable()); 2020 } 2021 2022 protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message, 2023 final Object p0, final Object p1) { 2024 final Message msg = messageFactory.newMessage(message, p0, p1); 2025 logMessageSafely(fqcn, level, marker, msg, msg.getThrowable()); 2026 } 2027 2028 protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message, 2029 final Object p0, final Object p1, final Object p2) { 2030 final Message msg = messageFactory.newMessage(message, p0, p1, p2); 2031 logMessageSafely(fqcn, level, marker, msg, msg.getThrowable()); 2032 } 2033 2034 protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message, 2035 final Object p0, final Object p1, final Object p2, final Object p3) { 2036 final Message msg = messageFactory.newMessage(message, p0, p1, p2, p3); 2037 logMessageSafely(fqcn, level, marker, msg, msg.getThrowable()); 2038 } 2039 2040 protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message, 2041 final Object p0, final Object p1, final Object p2, final Object p3, final Object p4) { 2042 final Message msg = messageFactory.newMessage(message, p0, p1, p2, p3, p4); 2043 logMessageSafely(fqcn, level, marker, msg, msg.getThrowable()); 2044 } 2045 2046 protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message, 2047 final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5) { 2048 final Message msg = messageFactory.newMessage(message, p0, p1, p2, p3, p4, p5); 2049 logMessageSafely(fqcn, level, marker, msg, msg.getThrowable()); 2050 } 2051 2052 protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message, 2053 final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5, 2054 final Object p6) { 2055 final Message msg = messageFactory.newMessage(message, p0, p1, p2, p3, p4, p5, p6); 2056 logMessageSafely(fqcn, level, marker, msg, msg.getThrowable()); 2057 } 2058 2059 protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message, 2060 final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5, 2061 final Object p6, final Object p7) { 2062 final Message msg = messageFactory.newMessage(message, p0, p1, p2, p3, p4, p5, p6, p7); 2063 logMessageSafely(fqcn, level, marker, msg, msg.getThrowable()); 2064 } 2065 2066 protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message, 2067 final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5, 2068 final Object p6, final Object p7, final Object p8) { 2069 final Message msg = messageFactory.newMessage(message, p0, p1, p2, p3, p4, p5, p6, p7, p8); 2070 logMessageSafely(fqcn, level, marker, msg, msg.getThrowable()); 2071 } 2072 2073 protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message, 2074 final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5, 2075 final Object p6, final Object p7, final Object p8, final Object p9) { 2076 final Message msg = messageFactory.newMessage(message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); 2077 logMessageSafely(fqcn, level, marker, msg, msg.getThrowable()); 2078 } 2079 2080 protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message, 2081 final Supplier<?>... paramSuppliers) { 2082 final Message msg = messageFactory.newMessage(message, LambdaUtil.getAll(paramSuppliers)); 2083 logMessageSafely(fqcn, level, marker, msg, msg.getThrowable()); 2084 } 2085 2086 @Override 2087 public void printf(final Level level, final Marker marker, final String format, final Object... params) { 2088 if (isEnabled(level, marker, format, params)) { 2089 final Message msg = new StringFormattedMessage(format, params); 2090 logMessageSafely(FQCN, level, marker, msg, msg.getThrowable()); 2091 } 2092 } 2093 2094 @Override 2095 public void printf(final Level level, final String format, final Object... params) { 2096 if (isEnabled(level, null, format, params)) { 2097 final Message msg = new StringFormattedMessage(format, params); 2098 logMessageSafely(FQCN, level, null, msg, msg.getThrowable()); 2099 } 2100 } 2101 2102 @PerformanceSensitive 2103 // NOTE: This is a hot method. Current implementation compiles to 30 bytes of byte code. 2104 // This is within the 35 byte MaxInlineSize threshold. Modify with care! 2105 private void logMessageSafely(final String fqcn, final Level level, final Marker marker, final Message msg, 2106 final Throwable throwable) { 2107 try { 2108 logMessageTrackRecursion(fqcn, level, marker, msg, throwable); 2109 } finally { 2110 // LOG4J2-1583 prevent scrambled logs when logging calls are nested (logging in toString()) 2111 ReusableMessageFactory.release(msg); 2112 } 2113 } 2114 2115 @PerformanceSensitive 2116 // NOTE: This is a hot method. Current implementation compiles to 29 bytes of byte code. 2117 // This is within the 35 byte MaxInlineSize threshold. Modify with care! 2118 private void logMessageTrackRecursion(final String fqcn, 2119 final Level level, 2120 final Marker marker, 2121 final Message msg, 2122 final Throwable throwable) { 2123 try { 2124 incrementRecursionDepth(); // LOG4J2-1518, LOG4J2-2031 2125 tryLogMessage(fqcn, level, marker, msg, throwable); 2126 } finally { 2127 decrementRecursionDepth(); 2128 } 2129 } 2130 2131 private static int[] getRecursionDepthHolder() { 2132 int[] result = recursionDepthHolder.get(); 2133 if (result == null) { 2134 result = new int[1]; 2135 recursionDepthHolder.set(result); 2136 } 2137 return result; 2138 } 2139 2140 private static void incrementRecursionDepth() { 2141 getRecursionDepthHolder()[0]++; 2142 } 2143 private static void decrementRecursionDepth() { 2144 int[] depth = getRecursionDepthHolder(); 2145 depth[0]--; 2146 if (depth[0] < 0) { 2147 throw new IllegalStateException("Recursion depth became negative: " + depth[0]); 2148 } 2149 } 2150 2151 /** 2152 * Returns the depth of nested logging calls in the current Thread: zero if no logging call has been made, 2153 * one if a single logging call without nested logging calls has been made, or more depending on the level of 2154 * nesting. 2155 * @return the depth of the nested logging calls in the current Thread 2156 */ 2157 public static int getRecursionDepth() { 2158 return getRecursionDepthHolder()[0]; 2159 } 2160 2161 @PerformanceSensitive 2162 // NOTE: This is a hot method. Current implementation compiles to 26 bytes of byte code. 2163 // This is within the 35 byte MaxInlineSize threshold. Modify with care! 2164 private void tryLogMessage(final String fqcn, 2165 final Level level, 2166 final Marker marker, 2167 final Message msg, 2168 final Throwable throwable) { 2169 try { 2170 logMessage(fqcn, level, marker, msg, throwable); 2171 } catch (final Exception e) { 2172 // LOG4J2-1990 Log4j2 suppresses all exceptions that occur once application called the logger 2173 handleLogMessageException(e, fqcn, msg); 2174 } 2175 } 2176 2177 // LOG4J2-1990 Log4j2 suppresses all exceptions that occur once application called the logger 2178 // TODO Configuration setting to propagate exceptions back to the caller *if requested* 2179 private void handleLogMessageException(final Exception exception, final String fqcn, final Message msg) { 2180 if (exception instanceof LoggingException) { 2181 throw (LoggingException) exception; 2182 } 2183 final String format = msg.getFormat(); 2184 final StringBuilder sb = new StringBuilder(format.length() + 100); 2185 sb.append(fqcn); 2186 sb.append(" caught "); 2187 sb.append(exception.getClass().getName()); 2188 sb.append(" logging "); 2189 sb.append(msg.getClass().getSimpleName()); 2190 sb.append(": "); 2191 sb.append(format); 2192 StatusLogger.getLogger().warn(sb.toString(), exception); 2193 } 2194 2195 @Override 2196 public <T extends Throwable> T throwing(final T t) { 2197 return throwing(FQCN, Level.ERROR, t); 2198 } 2199 2200 @Override 2201 public <T extends Throwable> T throwing(final Level level, final T t) { 2202 return throwing(FQCN, level, t); 2203 } 2204 2205 /** 2206 * Logs a Throwable to be thrown. 2207 * 2208 * @param <T> the type of the Throwable. 2209 * @param fqcn the fully qualified class name of this Logger implementation. 2210 * @param level The logging Level. 2211 * @param t The Throwable. 2212 * @return the Throwable. 2213 */ 2214 protected <T extends Throwable> T throwing(final String fqcn, final Level level, final T t) { 2215 if (isEnabled(level, THROWING_MARKER, (Object) null, null)) { 2216 logMessageSafely(fqcn, level, THROWING_MARKER, throwingMsg(t), t); 2217 } 2218 return t; 2219 } 2220 2221 protected Message throwingMsg(final Throwable t) { 2222 return messageFactory.newMessage(THROWING); 2223 } 2224 2225 @Override 2226 public void trace(final Marker marker, final Message msg) { 2227 logIfEnabled(FQCN, Level.TRACE, marker, msg, msg != null ? msg.getThrowable() : null); 2228 } 2229 2230 @Override 2231 public void trace(final Marker marker, final Message msg, final Throwable t) { 2232 logIfEnabled(FQCN, Level.TRACE, marker, msg, t); 2233 } 2234 2235 @Override 2236 public void trace(final Marker marker, final CharSequence message) { 2237 logIfEnabled(FQCN, Level.TRACE, marker, message, null); 2238 } 2239 2240 @Override 2241 public void trace(final Marker marker, final CharSequence message, final Throwable t) { 2242 logIfEnabled(FQCN, Level.TRACE, marker, message, t); 2243 } 2244 2245 @Override 2246 public void trace(final Marker marker, final Object message) { 2247 logIfEnabled(FQCN, Level.TRACE, marker, message, null); 2248 } 2249 2250 @Override 2251 public void trace(final Marker marker, final Object message, final Throwable t) { 2252 logIfEnabled(FQCN, Level.TRACE, marker, message, t); 2253 } 2254 2255 @Override 2256 public void trace(final Marker marker, final String message) { 2257 logIfEnabled(FQCN, Level.TRACE, marker, message, (Throwable) null); 2258 } 2259 2260 @Override 2261 public void trace(final Marker marker, final String message, final Object... params) { 2262 logIfEnabled(FQCN, Level.TRACE, marker, message, params); 2263 } 2264 2265 @Override 2266 public void trace(final Marker marker, final String message, final Throwable t) { 2267 logIfEnabled(FQCN, Level.TRACE, marker, message, t); 2268 } 2269 2270 @Override 2271 public void trace(final Message msg) { 2272 logIfEnabled(FQCN, Level.TRACE, null, msg, msg != null ? msg.getThrowable() : null); 2273 } 2274 2275 @Override 2276 public void trace(final Message msg, final Throwable t) { 2277 logIfEnabled(FQCN, Level.TRACE, null, msg, t); 2278 } 2279 2280 @Override 2281 public void trace(final CharSequence message) { 2282 logIfEnabled(FQCN, Level.TRACE, null, message, null); 2283 } 2284 2285 @Override 2286 public void trace(final CharSequence message, final Throwable t) { 2287 logIfEnabled(FQCN, Level.TRACE, null, message, t); 2288 } 2289 2290 @Override 2291 public void trace(final Object message) { 2292 logIfEnabled(FQCN, Level.TRACE, null, message, null); 2293 } 2294 2295 @Override 2296 public void trace(final Object message, final Throwable t) { 2297 logIfEnabled(FQCN, Level.TRACE, null, message, t); 2298 } 2299 2300 @Override 2301 public void trace(final String message) { 2302 logIfEnabled(FQCN, Level.TRACE, null, message, (Throwable) null); 2303 } 2304 2305 @Override 2306 public void trace(final String message, final Object... params) { 2307 logIfEnabled(FQCN, Level.TRACE, null, message, params); 2308 } 2309 2310 @Override 2311 public void trace(final String message, final Throwable t) { 2312 logIfEnabled(FQCN, Level.TRACE, null, message, t); 2313 } 2314 2315 @Override 2316 public void trace(final Supplier<?> msgSupplier) { 2317 logIfEnabled(FQCN, Level.TRACE, null, msgSupplier, (Throwable) null); 2318 } 2319 2320 @Override 2321 public void trace(final Supplier<?> msgSupplier, final Throwable t) { 2322 logIfEnabled(FQCN, Level.TRACE, null, msgSupplier, t); 2323 } 2324 2325 @Override 2326 public void trace(final Marker marker, final Supplier<?> msgSupplier) { 2327 logIfEnabled(FQCN, Level.TRACE, marker, msgSupplier, (Throwable) null); 2328 } 2329 2330 @Override 2331 public void trace(final Marker marker, final String message, final Supplier<?>... paramSuppliers) { 2332 logIfEnabled(FQCN, Level.TRACE, marker, message, paramSuppliers); 2333 } 2334 2335 @Override 2336 public void trace(final Marker marker, final Supplier<?> msgSupplier, final Throwable t) { 2337 logIfEnabled(FQCN, Level.TRACE, marker, msgSupplier, t); 2338 } 2339 2340 @Override 2341 public void trace(final String message, final Supplier<?>... paramSuppliers) { 2342 logIfEnabled(FQCN, Level.TRACE, null, message, paramSuppliers); 2343 } 2344 2345 @Override 2346 public void trace(final Marker marker, final MessageSupplier msgSupplier) { 2347 logIfEnabled(FQCN, Level.TRACE, marker, msgSupplier, (Throwable) null); 2348 } 2349 2350 @Override 2351 public void trace(final Marker marker, final MessageSupplier msgSupplier, final Throwable t) { 2352 logIfEnabled(FQCN, Level.TRACE, marker, msgSupplier, t); 2353 } 2354 2355 @Override 2356 public void trace(final MessageSupplier msgSupplier) { 2357 logIfEnabled(FQCN, Level.TRACE, null, msgSupplier, (Throwable) null); 2358 } 2359 2360 @Override 2361 public void trace(final MessageSupplier msgSupplier, final Throwable t) { 2362 logIfEnabled(FQCN, Level.TRACE, null, msgSupplier, t); 2363 } 2364 2365 @Override 2366 public void trace(final Marker marker, final String message, final Object p0) { 2367 logIfEnabled(FQCN, Level.TRACE, marker, message, p0); 2368 } 2369 2370 @Override 2371 public void trace(final Marker marker, final String message, final Object p0, final Object p1) { 2372 logIfEnabled(FQCN, Level.TRACE, marker, message, p0, p1); 2373 } 2374 2375 @Override 2376 public void trace(final Marker marker, final String message, final Object p0, final Object p1, final Object p2) { 2377 logIfEnabled(FQCN, Level.TRACE, marker, message, p0, p1, p2); 2378 } 2379 2380 @Override 2381 public void trace(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 2382 final Object p3) { 2383 logIfEnabled(FQCN, Level.TRACE, marker, message, p0, p1, p2, p3); 2384 } 2385 2386 @Override 2387 public void trace(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 2388 final Object p3, final Object p4) { 2389 logIfEnabled(FQCN, Level.TRACE, marker, message, p0, p1, p2, p3, p4); 2390 } 2391 2392 @Override 2393 public void trace(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 2394 final Object p3, final Object p4, final Object p5) { 2395 logIfEnabled(FQCN, Level.TRACE, marker, message, p0, p1, p2, p3, p4, p5); 2396 } 2397 2398 @Override 2399 public void trace(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 2400 final Object p3, final Object p4, final Object p5, final Object p6) { 2401 logIfEnabled(FQCN, Level.TRACE, marker, message, p0, p1, p2, p3, p4, p5, p6); 2402 } 2403 2404 @Override 2405 public void trace(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 2406 final Object p3, final Object p4, final Object p5, final Object p6, final Object p7) { 2407 logIfEnabled(FQCN, Level.TRACE, marker, message, p0, p1, p2, p3, p4, p5, p6, p7); 2408 } 2409 2410 @Override 2411 public void trace(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 2412 final Object p3, final Object p4, final Object p5, 2413 final Object p6, final Object p7, final Object p8) { 2414 logIfEnabled(FQCN, Level.TRACE, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8); 2415 } 2416 2417 @Override 2418 public void trace(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 2419 final Object p3, final Object p4, final Object p5, 2420 final Object p6, final Object p7, final Object p8, final Object p9) { 2421 logIfEnabled(FQCN, Level.TRACE, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); 2422 } 2423 2424 @Override 2425 public void trace(final String message, final Object p0) { 2426 logIfEnabled(FQCN, Level.TRACE, null, message, p0); 2427 } 2428 2429 @Override 2430 public void trace(final String message, final Object p0, final Object p1) { 2431 logIfEnabled(FQCN, Level.TRACE, null, message, p0, p1); 2432 } 2433 2434 @Override 2435 public void trace(final String message, final Object p0, final Object p1, final Object p2) { 2436 logIfEnabled(FQCN, Level.TRACE, null, message, p0, p1, p2); 2437 } 2438 2439 @Override 2440 public void trace(final String message, final Object p0, final Object p1, final Object p2, final Object p3) { 2441 logIfEnabled(FQCN, Level.TRACE, null, message, p0, p1, p2, p3); 2442 } 2443 2444 @Override 2445 public void trace(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 2446 final Object p4) { 2447 logIfEnabled(FQCN, Level.TRACE, null, message, p0, p1, p2, p3, p4); 2448 } 2449 2450 @Override 2451 public void trace(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 2452 final Object p4, final Object p5) { 2453 logIfEnabled(FQCN, Level.TRACE, null, message, p0, p1, p2, p3, p4, p5); 2454 } 2455 2456 @Override 2457 public void trace(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 2458 final Object p4, final Object p5, final Object p6) { 2459 logIfEnabled(FQCN, Level.TRACE, null, message, p0, p1, p2, p3, p4, p5, p6); 2460 } 2461 2462 @Override 2463 public void trace(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 2464 final Object p4, final Object p5, final Object p6, final Object p7) { 2465 logIfEnabled(FQCN, Level.TRACE, null, message, p0, p1, p2, p3, p4, p5, p6, p7); 2466 } 2467 2468 @Override 2469 public void trace(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 2470 final Object p4, final Object p5, final Object p6, final Object p7, final Object p8) { 2471 logIfEnabled(FQCN, Level.TRACE, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8); 2472 } 2473 2474 @Override 2475 public void trace(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 2476 final Object p4, final Object p5, final Object p6, final Object p7, final Object p8, final Object p9) { 2477 logIfEnabled(FQCN, Level.TRACE, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); 2478 } 2479 2480 @Override 2481 public EntryMessage traceEntry() { 2482 return enter(FQCN, null, (Object[]) null); 2483 } 2484 2485 @Override 2486 public EntryMessage traceEntry(final String format, final Object... params) { 2487 return enter(FQCN, format, params); 2488 } 2489 2490 @Override 2491 public EntryMessage traceEntry(final Supplier<?>... paramSuppliers) { 2492 return enter(FQCN, null, paramSuppliers); 2493 } 2494 2495 @Override 2496 public EntryMessage traceEntry(final String format, final Supplier<?>... paramSuppliers) { 2497 return enter(FQCN, format, paramSuppliers); 2498 } 2499 2500 @Override 2501 public EntryMessage traceEntry(final Message message) { 2502 return enter(FQCN, message); 2503 } 2504 2505 @Override 2506 public void traceExit() { 2507 exit(FQCN, null, null); 2508 } 2509 2510 @Override 2511 public <R> R traceExit(final R result) { 2512 return exit(FQCN, null, result); 2513 } 2514 2515 @Override 2516 public <R> R traceExit(final String format, final R result) { 2517 return exit(FQCN, format, result); 2518 } 2519 2520 @Override 2521 public void traceExit(final EntryMessage message) { 2522 // If the message is null, traceEnter returned null because flow logging was disabled, we can optimize out calling isEnabled(). 2523 if (message != null && isEnabled(Level.TRACE, EXIT_MARKER, message, null)) { 2524 logMessageSafely(FQCN, Level.TRACE, EXIT_MARKER, flowMessageFactory.newExitMessage(message), null); 2525 } 2526 } 2527 2528 @Override 2529 public <R> R traceExit(final EntryMessage message, final R result) { 2530 // If the message is null, traceEnter returned null because flow logging was disabled, we can optimize out calling isEnabled(). 2531 if (message != null && isEnabled(Level.TRACE, EXIT_MARKER, message, null)) { 2532 logMessageSafely(FQCN, Level.TRACE, EXIT_MARKER, flowMessageFactory.newExitMessage(result, message), null); 2533 } 2534 return result; 2535 } 2536 2537 @Override 2538 public <R> R traceExit(final Message message, final R result) { 2539 // If the message is null, traceEnter returned null because flow logging was disabled, we can optimize out calling isEnabled(). 2540 if (message != null && isEnabled(Level.TRACE, EXIT_MARKER, message, null)) { 2541 logMessageSafely(FQCN, Level.TRACE, EXIT_MARKER, flowMessageFactory.newExitMessage(result, message), null); 2542 } 2543 return result; 2544 } 2545 2546 @Override 2547 public void warn(final Marker marker, final Message msg) { 2548 logIfEnabled(FQCN, Level.WARN, marker, msg, msg != null ? msg.getThrowable() : null); 2549 } 2550 2551 @Override 2552 public void warn(final Marker marker, final Message msg, final Throwable t) { 2553 logIfEnabled(FQCN, Level.WARN, marker, msg, t); 2554 } 2555 2556 @Override 2557 public void warn(final Marker marker, final CharSequence message) { 2558 logIfEnabled(FQCN, Level.WARN, marker, message, null); 2559 } 2560 2561 @Override 2562 public void warn(final Marker marker, final CharSequence message, final Throwable t) { 2563 logIfEnabled(FQCN, Level.WARN, marker, message, t); 2564 } 2565 2566 @Override 2567 public void warn(final Marker marker, final Object message) { 2568 logIfEnabled(FQCN, Level.WARN, marker, message, null); 2569 } 2570 2571 @Override 2572 public void warn(final Marker marker, final Object message, final Throwable t) { 2573 logIfEnabled(FQCN, Level.WARN, marker, message, t); 2574 } 2575 2576 @Override 2577 public void warn(final Marker marker, final String message) { 2578 logIfEnabled(FQCN, Level.WARN, marker, message, (Throwable) null); 2579 } 2580 2581 @Override 2582 public void warn(final Marker marker, final String message, final Object... params) { 2583 logIfEnabled(FQCN, Level.WARN, marker, message, params); 2584 } 2585 2586 @Override 2587 public void warn(final Marker marker, final String message, final Throwable t) { 2588 logIfEnabled(FQCN, Level.WARN, marker, message, t); 2589 } 2590 2591 @Override 2592 public void warn(final Message msg) { 2593 logIfEnabled(FQCN, Level.WARN, null, msg, msg != null ? msg.getThrowable() : null); 2594 } 2595 2596 @Override 2597 public void warn(final Message msg, final Throwable t) { 2598 logIfEnabled(FQCN, Level.WARN, null, msg, t); 2599 } 2600 2601 @Override 2602 public void warn(final CharSequence message) { 2603 logIfEnabled(FQCN, Level.WARN, null, message, null); 2604 } 2605 2606 @Override 2607 public void warn(final CharSequence message, final Throwable t) { 2608 logIfEnabled(FQCN, Level.WARN, null, message, t); 2609 } 2610 2611 @Override 2612 public void warn(final Object message) { 2613 logIfEnabled(FQCN, Level.WARN, null, message, null); 2614 } 2615 2616 @Override 2617 public void warn(final Object message, final Throwable t) { 2618 logIfEnabled(FQCN, Level.WARN, null, message, t); 2619 } 2620 2621 @Override 2622 public void warn(final String message) { 2623 logIfEnabled(FQCN, Level.WARN, null, message, (Throwable) null); 2624 } 2625 2626 @Override 2627 public void warn(final String message, final Object... params) { 2628 logIfEnabled(FQCN, Level.WARN, null, message, params); 2629 } 2630 2631 @Override 2632 public void warn(final String message, final Throwable t) { 2633 logIfEnabled(FQCN, Level.WARN, null, message, t); 2634 } 2635 2636 @Override 2637 public void warn(final Supplier<?> msgSupplier) { 2638 logIfEnabled(FQCN, Level.WARN, null, msgSupplier, (Throwable) null); 2639 } 2640 2641 @Override 2642 public void warn(final Supplier<?> msgSupplier, final Throwable t) { 2643 logIfEnabled(FQCN, Level.WARN, null, msgSupplier, t); 2644 } 2645 2646 @Override 2647 public void warn(final Marker marker, final Supplier<?> msgSupplier) { 2648 logIfEnabled(FQCN, Level.WARN, marker, msgSupplier, (Throwable) null); 2649 } 2650 2651 @Override 2652 public void warn(final Marker marker, final String message, final Supplier<?>... paramSuppliers) { 2653 logIfEnabled(FQCN, Level.WARN, marker, message, paramSuppliers); 2654 } 2655 2656 @Override 2657 public void warn(final Marker marker, final Supplier<?> msgSupplier, final Throwable t) { 2658 logIfEnabled(FQCN, Level.WARN, marker, msgSupplier, t); 2659 } 2660 2661 @Override 2662 public void warn(final String message, final Supplier<?>... paramSuppliers) { 2663 logIfEnabled(FQCN, Level.WARN, null, message, paramSuppliers); 2664 } 2665 2666 @Override 2667 public void warn(final Marker marker, final MessageSupplier msgSupplier) { 2668 logIfEnabled(FQCN, Level.WARN, marker, msgSupplier, (Throwable) null); 2669 } 2670 2671 @Override 2672 public void warn(final Marker marker, final MessageSupplier msgSupplier, final Throwable t) { 2673 logIfEnabled(FQCN, Level.WARN, marker, msgSupplier, t); 2674 } 2675 2676 @Override 2677 public void warn(final MessageSupplier msgSupplier) { 2678 logIfEnabled(FQCN, Level.WARN, null, msgSupplier, (Throwable) null); 2679 } 2680 2681 @Override 2682 public void warn(final MessageSupplier msgSupplier, final Throwable t) { 2683 logIfEnabled(FQCN, Level.WARN, null, msgSupplier, t); 2684 } 2685 2686 @Override 2687 public void warn(final Marker marker, final String message, final Object p0) { 2688 logIfEnabled(FQCN, Level.WARN, marker, message, p0); 2689 } 2690 2691 @Override 2692 public void warn(final Marker marker, final String message, final Object p0, final Object p1) { 2693 logIfEnabled(FQCN, Level.WARN, marker, message, p0, p1); 2694 } 2695 2696 @Override 2697 public void warn(final Marker marker, final String message, final Object p0, final Object p1, final Object p2) { 2698 logIfEnabled(FQCN, Level.WARN, marker, message, p0, p1, p2); 2699 } 2700 2701 @Override 2702 public void warn(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 2703 final Object p3) { 2704 logIfEnabled(FQCN, Level.WARN, marker, message, p0, p1, p2, p3); 2705 } 2706 2707 @Override 2708 public void warn(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 2709 final Object p3, final Object p4) { 2710 logIfEnabled(FQCN, Level.WARN, marker, message, p0, p1, p2, p3, p4); 2711 } 2712 2713 @Override 2714 public void warn(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 2715 final Object p3, final Object p4, final Object p5) { 2716 logIfEnabled(FQCN, Level.WARN, marker, message, p0, p1, p2, p3, p4, p5); 2717 } 2718 2719 @Override 2720 public void warn(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 2721 final Object p3, final Object p4, final Object p5, final Object p6) { 2722 logIfEnabled(FQCN, Level.WARN, marker, message, p0, p1, p2, p3, p4, p5, p6); 2723 } 2724 2725 @Override 2726 public void warn(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 2727 final Object p3, final Object p4, final Object p5, final Object p6, final Object p7) { 2728 logIfEnabled(FQCN, Level.WARN, marker, message, p0, p1, p2, p3, p4, p5, p6, p7); 2729 } 2730 2731 @Override 2732 public void warn(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 2733 final Object p3, final Object p4, final Object p5, final Object p6, final Object p7, final Object p8) { 2734 logIfEnabled(FQCN, Level.WARN, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8); 2735 } 2736 2737 @Override 2738 public void warn(final Marker marker, final String message, final Object p0, final Object p1, final Object p2, 2739 final Object p3, final Object p4, final Object p5, 2740 final Object p6, final Object p7, final Object p8, final Object p9) { 2741 logIfEnabled(FQCN, Level.WARN, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); 2742 } 2743 2744 @Override 2745 public void warn(final String message, final Object p0) { 2746 logIfEnabled(FQCN, Level.WARN, null, message, p0); 2747 } 2748 2749 @Override 2750 public void warn(final String message, final Object p0, final Object p1) { 2751 logIfEnabled(FQCN, Level.WARN, null, message, p0, p1); 2752 } 2753 2754 @Override 2755 public void warn(final String message, final Object p0, final Object p1, final Object p2) { 2756 logIfEnabled(FQCN, Level.WARN, null, message, p0, p1, p2); 2757 } 2758 2759 @Override 2760 public void warn(final String message, final Object p0, final Object p1, final Object p2, final Object p3) { 2761 logIfEnabled(FQCN, Level.WARN, null, message, p0, p1, p2, p3); 2762 } 2763 2764 @Override 2765 public void warn(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 2766 final Object p4) { 2767 logIfEnabled(FQCN, Level.WARN, null, message, p0, p1, p2, p3, p4); 2768 } 2769 2770 @Override 2771 public void warn(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 2772 final Object p4, final Object p5) { 2773 logIfEnabled(FQCN, Level.WARN, null, message, p0, p1, p2, p3, p4, p5); 2774 } 2775 2776 @Override 2777 public void warn(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 2778 final Object p4, final Object p5, final Object p6) { 2779 logIfEnabled(FQCN, Level.WARN, null, message, p0, p1, p2, p3, p4, p5, p6); 2780 } 2781 2782 @Override 2783 public void warn(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 2784 final Object p4, final Object p5, final Object p6, final Object p7) { 2785 logIfEnabled(FQCN, Level.WARN, null, message, p0, p1, p2, p3, p4, p5, p6, p7); 2786 } 2787 2788 @Override 2789 public void warn(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 2790 final Object p4, final Object p5, final Object p6, final Object p7, final Object p8) { 2791 logIfEnabled(FQCN, Level.WARN, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8); 2792 } 2793 2794 @Override 2795 public void warn(final String message, final Object p0, final Object p1, final Object p2, final Object p3, 2796 final Object p4, final Object p5, final Object p6, 2797 final Object p7, final Object p8, final Object p9) { 2798 logIfEnabled(FQCN, Level.WARN, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); 2799 } 2800}