All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bukkit.craftbukkit.util.ForwardLogHandler Maven / Gradle / Ivy

There is a newer version: 2.4.0
Show newest version
package org.bukkit.craftbukkit.util;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
import java.util.logging.LogRecord;

public class ForwardLogHandler extends ConsoleHandler {
  private final Map cachedLoggers = new ConcurrentHashMap();

  private Logger getLogger(String name) {
    Logger logger = cachedLoggers.get(name);
    if (logger == null) {
      logger = LogManager.getLogger(name);
      cachedLoggers.put(name, logger);
    }

    return logger;
  }

  @Override
  public void publish(LogRecord record) {
    Logger logger = getLogger(String.valueOf(record.getLoggerName())); // See SPIGOT-1230
    Throwable exception = record.getThrown();
    Level level = record.getLevel();
    String message = getFormatter().formatMessage(record);

    if (level == Level.SEVERE) {
      logger.error(message, exception);
    } else if (level == Level.WARNING) {
      logger.warn(message, exception);
    } else if (level == Level.INFO) {
      logger.info(message, exception);
    } else if (level == Level.CONFIG) {
      logger.debug(message, exception);
    } else {
      logger.trace(message, exception);
    }
  }

  @Override
  public void flush() {
  }

  @Override
  public void close() throws SecurityException {
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy