package org.apache.logging.log4j.spi;

import java.io.Serializable;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.Marker;
import org.apache.logging.log4j.MarkerManager;
import org.apache.logging.log4j.message.Message;
import org.apache.logging.log4j.message.MessageFactory;
import org.apache.logging.log4j.message.ParameterizedMessageFactory;
import org.apache.logging.log4j.message.StringFormattedMessage;
import org.apache.logging.log4j.status.StatusLogger;

public abstract class AbstractLogger implements ExtendedLogger, Serializable {
   private static final long serialVersionUID = 2L;
   public static final Marker FLOW_MARKER = MarkerManager.getMarker("FLOW");
   public static final Marker ENTRY_MARKER;
   public static final Marker EXIT_MARKER;
   public static final Marker EXCEPTION_MARKER;
   public static final Marker THROWING_MARKER;
   public static final Marker CATCHING_MARKER;
   public static final Class<? extends MessageFactory> DEFAULT_MESSAGE_FACTORY_CLASS;
   private static final String FQCN;
   private static final String THROWING = "throwing";
   private static final String CATCHING = "catching";
   private final String name;
   private final MessageFactory messageFactory;

   public static void checkMessageFactory(ExtendedLogger logger, MessageFactory messageFactory) {
      String name = logger.getName();
      MessageFactory loggerMessageFactory = logger.getMessageFactory();
      if (messageFactory != null && !loggerMessageFactory.equals(messageFactory)) {
         StatusLogger.getLogger().warn("The Logger {} was created with the message factory {} and is now requested with the message factory {}, which may create log events with unexpected formatting.", new Object[]{name, loggerMessageFactory, messageFactory});
      } else if (messageFactory == null && !loggerMessageFactory.getClass().equals(DEFAULT_MESSAGE_FACTORY_CLASS)) {
         StatusLogger.getLogger().warn("The Logger {} was created with the message factory {} and is now requested with a null message factory (defaults to {}), which may create log events with unexpected formatting.", new Object[]{name, loggerMessageFactory, DEFAULT_MESSAGE_FACTORY_CLASS.getName()});
      }

   }

   public AbstractLogger() {
      this.name = this.getClass().getName();
      this.messageFactory = this.createDefaultMessageFactory();
   }

   public AbstractLogger(String name) {
      this.name = name;
      this.messageFactory = this.createDefaultMessageFactory();
   }

   public AbstractLogger(String name, MessageFactory messageFactory) {
      this.name = name;
      this.messageFactory = messageFactory == null ? this.createDefaultMessageFactory() : messageFactory;
   }

   public void catching(Level level, Throwable t) {
      this.catching(FQCN, level, t);
   }

   protected void catching(String fqcn, Level level, Throwable t) {
      if (this.isEnabled(level, CATCHING_MARKER, (Object)null, (Throwable)null)) {
         this.logMessage(fqcn, level, CATCHING_MARKER, (Message)this.catchingMsg(t), (Throwable)t);
      }

   }

   public void catching(Throwable t) {
      if (this.isEnabled(Level.ERROR, CATCHING_MARKER, (Object)null, (Throwable)null)) {
         this.logMessage(FQCN, Level.ERROR, CATCHING_MARKER, (Message)this.catchingMsg(t), (Throwable)t);
      }

   }

   protected Message catchingMsg(Throwable t) {
      return this.messageFactory.newMessage("catching");
   }

   private MessageFactory createDefaultMessageFactory() {
      try {
         return (MessageFactory)DEFAULT_MESSAGE_FACTORY_CLASS.newInstance();
      } catch (InstantiationException var2) {
         throw new IllegalStateException(var2);
      } catch (IllegalAccessException var3) {
         throw new IllegalStateException(var3);
      }
   }

   public void debug(Marker marker, Message msg) {
      this.logIfEnabled(FQCN, Level.DEBUG, marker, (Message)msg, (Throwable)null);
   }

   public void debug(Marker marker, Message msg, Throwable t) {
      this.logIfEnabled(FQCN, Level.DEBUG, marker, msg, t);
   }

   public void debug(Marker marker, Object message) {
      this.logIfEnabled(FQCN, Level.DEBUG, marker, (Object)message, (Throwable)null);
   }

   public void debug(Marker marker, Object message, Throwable t) {
      this.logIfEnabled(FQCN, Level.DEBUG, marker, message, t);
   }

   public void debug(Marker marker, String message) {
      this.logIfEnabled(FQCN, Level.DEBUG, marker, message, (Throwable)null);
   }

   public void debug(Marker marker, String message, Object... params) {
      this.logIfEnabled(FQCN, Level.DEBUG, marker, message, params);
   }

   public void debug(Marker marker, String message, Throwable t) {
      this.logIfEnabled(FQCN, Level.DEBUG, marker, message, t);
   }

   public void debug(Message msg) {
      this.logIfEnabled(FQCN, Level.DEBUG, (Marker)null, (Message)msg, (Throwable)null);
   }

   public void debug(Message msg, Throwable t) {
      this.logIfEnabled(FQCN, Level.DEBUG, (Marker)null, (Message)msg, (Throwable)t);
   }

   public void debug(Object message) {
      this.logIfEnabled(FQCN, Level.DEBUG, (Marker)null, (Object)message, (Throwable)null);
   }

   public void debug(Object message, Throwable t) {
      this.logIfEnabled(FQCN, Level.DEBUG, (Marker)null, (Object)message, (Throwable)t);
   }

   public void debug(String message) {
      this.logIfEnabled(FQCN, Level.DEBUG, (Marker)null, (String)message, (Throwable)((Throwable)null));
   }

   public void debug(String message, Object... params) {
      this.logIfEnabled(FQCN, Level.DEBUG, (Marker)null, (String)message, (Object[])params);
   }

   public void debug(String message, Throwable t) {
      this.logIfEnabled(FQCN, Level.DEBUG, (Marker)null, (String)message, (Throwable)t);
   }

   public void entry() {
      this.entry(FQCN);
   }

   public void entry(Object... params) {
      this.entry(FQCN, params);
   }

   protected void entry(String fqcn, Object... params) {
      if (this.isEnabled(Level.TRACE, ENTRY_MARKER, (Object)null, (Throwable)null)) {
         this.logIfEnabled(fqcn, Level.TRACE, ENTRY_MARKER, (Message)this.entryMsg(params.length, params), (Throwable)null);
      }

   }

   protected Message entryMsg(int count, Object... params) {
      if (count == 0) {
         return this.messageFactory.newMessage("entry");
      } else {
         StringBuilder sb = new StringBuilder("entry params(");
         int i = 0;
         Object[] arr$ = params;
         int len$ = params.length;

         for(int i$ = 0; i$ < len$; ++i$) {
            Object parm = arr$[i$];
            if (parm != null) {
               sb.append(parm.toString());
            } else {
               sb.append("null");
            }

            ++i;
            if (i < params.length) {
               sb.append(", ");
            }
         }

         sb.append(')');
         return this.messageFactory.newMessage(sb.toString());
      }
   }

   public void error(Marker marker, Message msg) {
      this.logIfEnabled(FQCN, Level.ERROR, marker, (Message)msg, (Throwable)null);
   }

   public void error(Marker marker, Message msg, Throwable t) {
      this.logIfEnabled(FQCN, Level.ERROR, marker, msg, t);
   }

   public void error(Marker marker, Object message) {
      this.logIfEnabled(FQCN, Level.ERROR, marker, (Object)message, (Throwable)null);
   }

   public void error(Marker marker, Object message, Throwable t) {
      this.logIfEnabled(FQCN, Level.ERROR, marker, message, t);
   }

   public void error(Marker marker, String message) {
      this.logIfEnabled(FQCN, Level.ERROR, marker, message, (Throwable)null);
   }

   public void error(Marker marker, String message, Object... params) {
      this.logIfEnabled(FQCN, Level.ERROR, marker, message, params);
   }

   public void error(Marker marker, String message, Throwable t) {
      this.logIfEnabled(FQCN, Level.ERROR, marker, message, t);
   }

   public void error(Message msg) {
      this.logIfEnabled(FQCN, Level.ERROR, (Marker)null, (Message)msg, (Throwable)null);
   }

   public void error(Message msg, Throwable t) {
      this.logIfEnabled(FQCN, Level.ERROR, (Marker)null, (Message)msg, (Throwable)t);
   }

   public void error(Object message) {
      this.logIfEnabled(FQCN, Level.ERROR, (Marker)null, (Object)message, (Throwable)null);
   }

   public void error(Object message, Throwable t) {
      this.logIfEnabled(FQCN, Level.ERROR, (Marker)null, (Object)message, (Throwable)t);
   }

   public void error(String message) {
      this.logIfEnabled(FQCN, Level.ERROR, (Marker)null, (String)message, (Throwable)((Throwable)null));
   }

   public void error(String message, Object... params) {
      this.logIfEnabled(FQCN, Level.ERROR, (Marker)null, (String)message, (Object[])params);
   }

   public void error(String message, Throwable t) {
      this.logIfEnabled(FQCN, Level.ERROR, (Marker)null, (String)message, (Throwable)t);
   }

   public void exit() {
      this.exit(FQCN, (Object)null);
   }

   public <R> R exit(R result) {
      return this.exit(FQCN, result);
   }

   protected <R> R exit(String fqcn, R result) {
      if (this.isEnabled(Level.TRACE, EXIT_MARKER, (Object)null, (Throwable)null)) {
         this.logIfEnabled(fqcn, Level.TRACE, EXIT_MARKER, (Message)this.exitMsg(result), (Throwable)null);
      }

      return result;
   }

   protected Message exitMsg(Object result) {
      return result == null ? this.messageFactory.newMessage("exit") : this.messageFactory.newMessage("exit with(" + result + ')');
   }

   public void fatal(Marker marker, Message msg) {
      this.logIfEnabled(FQCN, Level.FATAL, marker, (Message)msg, (Throwable)null);
   }

   public void fatal(Marker marker, Message msg, Throwable t) {
      this.logIfEnabled(FQCN, Level.FATAL, marker, msg, t);
   }

   public void fatal(Marker marker, Object message) {
      this.logIfEnabled(FQCN, Level.FATAL, marker, (Object)message, (Throwable)null);
   }

   public void fatal(Marker marker, Object message, Throwable t) {
      this.logIfEnabled(FQCN, Level.FATAL, marker, message, t);
   }

   public void fatal(Marker marker, String message) {
      this.logIfEnabled(FQCN, Level.FATAL, marker, message, (Throwable)null);
   }

   public void fatal(Marker marker, String message, Object... params) {
      this.logIfEnabled(FQCN, Level.FATAL, marker, message, params);
   }

   public void fatal(Marker marker, String message, Throwable t) {
      this.logIfEnabled(FQCN, Level.FATAL, marker, message, t);
   }

   public void fatal(Message msg) {
      this.logIfEnabled(FQCN, Level.FATAL, (Marker)null, (Message)msg, (Throwable)null);
   }

   public void fatal(Message msg, Throwable t) {
      this.logIfEnabled(FQCN, Level.FATAL, (Marker)null, (Message)msg, (Throwable)t);
   }

   public void fatal(Object message) {
      this.logIfEnabled(FQCN, Level.FATAL, (Marker)null, (Object)message, (Throwable)null);
   }

   public void fatal(Object message, Throwable t) {
      this.logIfEnabled(FQCN, Level.FATAL, (Marker)null, (Object)message, (Throwable)t);
   }

   public void fatal(String message) {
      this.logIfEnabled(FQCN, Level.FATAL, (Marker)null, (String)message, (Throwable)((Throwable)null));
   }

   public void fatal(String message, Object... params) {
      this.logIfEnabled(FQCN, Level.FATAL, (Marker)null, (String)message, (Object[])params);
   }

   public void fatal(String message, Throwable t) {
      this.logIfEnabled(FQCN, Level.FATAL, (Marker)null, (String)message, (Throwable)t);
   }

   public MessageFactory getMessageFactory() {
      return this.messageFactory;
   }

   public String getName() {
      return this.name;
   }

   public void info(Marker marker, Message msg) {
      this.logIfEnabled(FQCN, Level.INFO, marker, (Message)msg, (Throwable)null);
   }

   public void info(Marker marker, Message msg, Throwable t) {
      this.logIfEnabled(FQCN, Level.INFO, marker, msg, t);
   }

   public void info(Marker marker, Object message) {
      this.logIfEnabled(FQCN, Level.INFO, marker, (Object)message, (Throwable)null);
   }

   public void info(Marker marker, Object message, Throwable t) {
      this.logIfEnabled(FQCN, Level.INFO, marker, message, t);
   }

   public void info(Marker marker, String message) {
      this.logIfEnabled(FQCN, Level.INFO, marker, message, (Throwable)null);
   }

   public void info(Marker marker, String message, Object... params) {
      this.logIfEnabled(FQCN, Level.INFO, marker, message, params);
   }

   public void info(Marker marker, String message, Throwable t) {
      this.logIfEnabled(FQCN, Level.INFO, marker, message, t);
   }

   public void info(Message msg) {
      this.logIfEnabled(FQCN, Level.INFO, (Marker)null, (Message)msg, (Throwable)null);
   }

   public void info(Message msg, Throwable t) {
      this.logIfEnabled(FQCN, Level.INFO, (Marker)null, (Message)msg, (Throwable)t);
   }

   public void info(Object message) {
      this.logIfEnabled(FQCN, Level.INFO, (Marker)null, (Object)message, (Throwable)null);
   }

   public void info(Object message, Throwable t) {
      this.logIfEnabled(FQCN, Level.INFO, (Marker)null, (Object)message, (Throwable)t);
   }

   public void info(String message) {
      this.logIfEnabled(FQCN, Level.INFO, (Marker)null, (String)message, (Throwable)((Throwable)null));
   }

   public void info(String message, Object... params) {
      this.logIfEnabled(FQCN, Level.INFO, (Marker)null, (String)message, (Object[])params);
   }

   public void info(String message, Throwable t) {
      this.logIfEnabled(FQCN, Level.INFO, (Marker)null, (String)message, (Throwable)t);
   }

   public boolean isDebugEnabled() {
      return this.isEnabled(Level.DEBUG, (Marker)null, (String)null);
   }

   public boolean isDebugEnabled(Marker marker) {
      return this.isEnabled(Level.DEBUG, marker, (Object)null, (Throwable)null);
   }

   public boolean isEnabled(Level level) {
      return this.isEnabled(level, (Marker)null, (Object)null, (Throwable)null);
   }

   public boolean isEnabled(Level level, Marker marker) {
      return this.isEnabled(level, marker, (Object)null, (Throwable)null);
   }

   public boolean isErrorEnabled() {
      return this.isEnabled(Level.ERROR, (Marker)null, (Object)null, (Throwable)null);
   }

   public boolean isErrorEnabled(Marker marker) {
      return this.isEnabled(Level.ERROR, marker, (Object)null, (Throwable)null);
   }

   public boolean isFatalEnabled() {
      return this.isEnabled(Level.FATAL, (Marker)null, (Object)null, (Throwable)null);
   }

   public boolean isFatalEnabled(Marker marker) {
      return this.isEnabled(Level.FATAL, marker, (Object)null, (Throwable)null);
   }

   public boolean isInfoEnabled() {
      return this.isEnabled(Level.INFO, (Marker)null, (Object)null, (Throwable)null);
   }

   public boolean isInfoEnabled(Marker marker) {
      return this.isEnabled(Level.INFO, marker, (Object)null, (Throwable)null);
   }

   public boolean isTraceEnabled() {
      return this.isEnabled(Level.TRACE, (Marker)null, (Object)null, (Throwable)null);
   }

   public boolean isTraceEnabled(Marker marker) {
      return this.isEnabled(Level.TRACE, marker, (Object)null, (Throwable)null);
   }

   public boolean isWarnEnabled() {
      return this.isEnabled(Level.WARN, (Marker)null, (Object)null, (Throwable)null);
   }

   public boolean isWarnEnabled(Marker marker) {
      return this.isEnabled(Level.WARN, marker, (Object)null, (Throwable)null);
   }

   public void log(Level level, Marker marker, Message msg) {
      this.logIfEnabled(FQCN, level, marker, msg, (Throwable)null);
   }

   public void log(Level level, Marker marker, Message msg, Throwable t) {
      this.logIfEnabled(FQCN, level, marker, msg, t);
   }

   public void log(Level level, Marker marker, Object message) {
      this.logIfEnabled(FQCN, level, marker, message, (Throwable)null);
   }

   public void log(Level level, Marker marker, Object message, Throwable t) {
      if (this.isEnabled(level, marker, message, t)) {
         this.logMessage(FQCN, level, marker, message, t);
      }

   }

   public void log(Level level, Marker marker, String message) {
      this.logIfEnabled(FQCN, level, marker, message, (Throwable)null);
   }

   public void log(Level level, Marker marker, String message, Object... params) {
      this.logIfEnabled(FQCN, level, marker, message, params);
   }

   public void log(Level level, Marker marker, String message, Throwable t) {
      this.logIfEnabled(FQCN, level, marker, message, t);
   }

   public void log(Level level, Message msg) {
      this.logIfEnabled(FQCN, level, (Marker)null, (Message)msg, (Throwable)null);
   }

   public void log(Level level, Message msg, Throwable t) {
      this.logIfEnabled(FQCN, level, (Marker)null, (Message)msg, (Throwable)t);
   }

   public void log(Level level, Object message) {
      this.logIfEnabled(FQCN, level, (Marker)null, (Object)message, (Throwable)null);
   }

   public void log(Level level, Object message, Throwable t) {
      this.logIfEnabled(FQCN, level, (Marker)null, (Object)message, (Throwable)t);
   }

   public void log(Level level, String message) {
      this.logIfEnabled(FQCN, level, (Marker)null, (String)message, (Throwable)((Throwable)null));
   }

   public void log(Level level, String message, Object... params) {
      this.logIfEnabled(FQCN, level, (Marker)null, (String)message, (Object[])params);
   }

   public void log(Level level, String message, Throwable t) {
      this.logIfEnabled(FQCN, level, (Marker)null, (String)message, (Throwable)t);
   }

   public void logIfEnabled(String fqcn, Level level, Marker marker, Message msg, Throwable t) {
      if (this.isEnabled(level, marker, msg, t)) {
         this.logMessage(fqcn, level, marker, (Message)msg, (Throwable)t);
      }

   }

   public void logIfEnabled(String fqcn, Level level, Marker marker, Object message, Throwable t) {
      if (this.isEnabled(level, marker, message, t)) {
         this.logMessage(fqcn, level, marker, message, t);
      }

   }

   public void logIfEnabled(String fqcn, Level level, Marker marker, String message) {
      if (this.isEnabled(level, marker, message)) {
         this.logMessage(fqcn, level, marker, message);
      }

   }

   public void logIfEnabled(String fqcn, Level level, Marker marker, String message, Object... params) {
      if (this.isEnabled(level, marker, message, params)) {
         this.logMessage(fqcn, level, marker, message, params);
      }

   }

   public void logIfEnabled(String fqcn, Level level, Marker marker, String message, Throwable t) {
      if (this.isEnabled(level, marker, message, t)) {
         this.logMessage(fqcn, level, marker, message, t);
      }

   }

   protected void logMessage(String fqcn, Level level, Marker marker, Object message, Throwable t) {
      this.logMessage(fqcn, level, marker, (Message)this.messageFactory.newMessage(message), (Throwable)t);
   }

   protected void logMessage(String fqcn, Level level, Marker marker, String message, Throwable t) {
      this.logMessage(fqcn, level, marker, (Message)this.messageFactory.newMessage(message), (Throwable)t);
   }

   protected void logMessage(String fqcn, Level level, Marker marker, String message) {
      Message msg = this.messageFactory.newMessage(message);
      this.logMessage(fqcn, level, marker, (Message)msg, (Throwable)msg.getThrowable());
   }

   protected void logMessage(String fqcn, Level level, Marker marker, String message, Object... params) {
      Message msg = this.messageFactory.newMessage(message, params);
      this.logMessage(fqcn, level, marker, (Message)msg, (Throwable)msg.getThrowable());
   }

   public void printf(Level level, Marker marker, String format, Object... params) {
      if (this.isEnabled(level, marker, format, params)) {
         Message msg = new StringFormattedMessage(format, params);
         this.logMessage(FQCN, level, marker, (Message)msg, (Throwable)msg.getThrowable());
      }

   }

   public void printf(Level level, String format, Object... params) {
      if (this.isEnabled(level, (Marker)null, format, params)) {
         Message msg = new StringFormattedMessage(format, params);
         this.logMessage(FQCN, level, (Marker)null, (Message)msg, (Throwable)msg.getThrowable());
      }

   }

   public <T extends Throwable> T throwing(T t) {
      return this.throwing(FQCN, Level.ERROR, t);
   }

   public <T extends Throwable> T throwing(Level level, T t) {
      return this.throwing(FQCN, level, t);
   }

   protected <T extends Throwable> T throwing(String fqcn, Level level, T t) {
      if (this.isEnabled(level, THROWING_MARKER, (Object)null, (Throwable)null)) {
         this.logMessage(fqcn, level, THROWING_MARKER, (Message)this.throwingMsg(t), (Throwable)t);
      }

      return t;
   }

   protected Message throwingMsg(Throwable t) {
      return this.messageFactory.newMessage("throwing");
   }

   public void trace(Marker marker, Message msg) {
      this.logIfEnabled(FQCN, Level.TRACE, marker, (Message)msg, (Throwable)null);
   }

   public void trace(Marker marker, Message msg, Throwable t) {
      this.logIfEnabled(FQCN, Level.TRACE, marker, msg, t);
   }

   public void trace(Marker marker, Object message) {
      this.logIfEnabled(FQCN, Level.TRACE, marker, (Object)message, (Throwable)null);
   }

   public void trace(Marker marker, Object message, Throwable t) {
      this.logIfEnabled(FQCN, Level.TRACE, marker, message, t);
   }

   public void trace(Marker marker, String message) {
      this.logIfEnabled(FQCN, Level.TRACE, marker, message, (Throwable)null);
   }

   public void trace(Marker marker, String message, Object... params) {
      this.logIfEnabled(FQCN, Level.TRACE, marker, message, params);
   }

   public void trace(Marker marker, String message, Throwable t) {
      this.logIfEnabled(FQCN, Level.TRACE, marker, message, t);
   }

   public void trace(Message msg) {
      this.logIfEnabled(FQCN, Level.TRACE, (Marker)null, (Message)msg, (Throwable)null);
   }

   public void trace(Message msg, Throwable t) {
      this.logIfEnabled(FQCN, Level.TRACE, (Marker)null, (Message)msg, (Throwable)t);
   }

   public void trace(Object message) {
      this.logIfEnabled(FQCN, Level.TRACE, (Marker)null, (Object)message, (Throwable)null);
   }

   public void trace(Object message, Throwable t) {
      this.logIfEnabled(FQCN, Level.TRACE, (Marker)null, (Object)message, (Throwable)t);
   }

   public void trace(String message) {
      this.logIfEnabled(FQCN, Level.TRACE, (Marker)null, (String)message, (Throwable)((Throwable)null));
   }

   public void trace(String message, Object... params) {
      this.logIfEnabled(FQCN, Level.TRACE, (Marker)null, (String)message, (Object[])params);
   }

   public void trace(String message, Throwable t) {
      this.logIfEnabled(FQCN, Level.TRACE, (Marker)null, (String)message, (Throwable)t);
   }

   public void warn(Marker marker, Message msg) {
      this.logIfEnabled(FQCN, Level.WARN, marker, (Message)msg, (Throwable)null);
   }

   public void warn(Marker marker, Message msg, Throwable t) {
      this.logIfEnabled(FQCN, Level.WARN, marker, msg, t);
   }

   public void warn(Marker marker, Object message) {
      this.logIfEnabled(FQCN, Level.WARN, marker, (Object)message, (Throwable)null);
   }

   public void warn(Marker marker, Object message, Throwable t) {
      this.logIfEnabled(FQCN, Level.WARN, marker, message, t);
   }

   public void warn(Marker marker, String message) {
      this.logIfEnabled(FQCN, Level.WARN, marker, message, (Throwable)null);
   }

   public void warn(Marker marker, String message, Object... params) {
      this.logIfEnabled(FQCN, Level.WARN, marker, message, params);
   }

   public void warn(Marker marker, String message, Throwable t) {
      this.logIfEnabled(FQCN, Level.WARN, marker, message, t);
   }

   public void warn(Message msg) {
      this.logIfEnabled(FQCN, Level.WARN, (Marker)null, (Message)msg, (Throwable)null);
   }

   public void warn(Message msg, Throwable t) {
      this.logIfEnabled(FQCN, Level.WARN, (Marker)null, (Message)msg, (Throwable)t);
   }

   public void warn(Object message) {
      this.logIfEnabled(FQCN, Level.WARN, (Marker)null, (Object)message, (Throwable)null);
   }

   public void warn(Object message, Throwable t) {
      this.logIfEnabled(FQCN, Level.WARN, (Marker)null, (Object)message, (Throwable)t);
   }

   public void warn(String message) {
      this.logIfEnabled(FQCN, Level.WARN, (Marker)null, (String)message, (Throwable)((Throwable)null));
   }

   public void warn(String message, Object... params) {
      this.logIfEnabled(FQCN, Level.WARN, (Marker)null, (String)message, (Object[])params);
   }

   public void warn(String message, Throwable t) {
      this.logIfEnabled(FQCN, Level.WARN, (Marker)null, (String)message, (Throwable)t);
   }

   static {
      ENTRY_MARKER = MarkerManager.getMarker("ENTRY").setParents(FLOW_MARKER);
      EXIT_MARKER = MarkerManager.getMarker("EXIT").setParents(FLOW_MARKER);
      EXCEPTION_MARKER = MarkerManager.getMarker("EXCEPTION");
      THROWING_MARKER = MarkerManager.getMarker("THROWING").setParents(EXCEPTION_MARKER);
      CATCHING_MARKER = MarkerManager.getMarker("CATCHING").setParents(EXCEPTION_MARKER);
      DEFAULT_MESSAGE_FACTORY_CLASS = ParameterizedMessageFactory.class;
      FQCN = AbstractLogger.class.getName();
   }
}
