package core.framework.impl.search.log; import core.framework.impl.log.LogLevel; import core.framework.impl.log.LoggerImpl; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.message.Message; import org.apache.logging.log4j.message.MessageFactory; import org.apache.logging.log4j.spi.AbstractLogger; public class ESLogger extends AbstractLogger { private static final long serialVersionUID = -4341238245729493821L; private final LoggerImpl logger; public ESLogger(String name, MessageFactory messageFactory, LoggerImpl logger) { super(name, messageFactory); this.logger = logger; } @Override public Level getLevel() { return Level.INFO; // only process info level for elasticsearch } @Override public boolean isEnabled(Level level, Marker marker, Message data, Throwable t) { return isEnabled(level); } @Override public boolean isEnabled(Level level, Marker marker, CharSequence data, Throwable t) { return isEnabled(level); } @Override public boolean isEnabled(Level level, Marker marker, Object data, Throwable t) { return isEnabled(level); } @Override public boolean isEnabled(Level level, Marker marker, String data) { return isEnabled(level); } @Override public boolean isEnabled(Level level, Marker marker, String data, Object... p1) { return isEnabled(level); } @Override public boolean isEnabled(Level level, Marker marker, String message, Object p0) { return isEnabled(level); } @Override public boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1) { return isEnabled(level); } @Override public boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2) { return isEnabled(level); } @Override public boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3) { return isEnabled(level); } @Override public boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4) { return isEnabled(level); } @Override public boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) { return isEnabled(level); } @Override public boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6) { return isEnabled(level); } @Override public boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7) { return isEnabled(level); } @Override public boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8) { return isEnabled(level); } @Override public boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7, Object p8, Object p9) { return isEnabled(level); } @Override public boolean isEnabled(Level level, Marker marker, String data, Throwable t) { return isEnabled(level); } @Override public boolean isEnabled(Level level) { return level.getStandardLevel().intLevel() <= Level.INFO.intLevel(); } @Override public void logMessage(String fqcn, Level level, Marker marker, Message message, Throwable exception) { logger.log(null, logLevel(level), message.getFormattedMessage(), message.getParameters(), exception); } private LogLevel logLevel(Level level) { switch (level.getStandardLevel()) { case INFO: return LogLevel.INFO; case WARN: return LogLevel.WARN; case ERROR: case FATAL: return LogLevel.ERROR; default: return LogLevel.DEBUG; } } }