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