/** * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.util.log; import org.apache.commons.lang.ObjectUtils; import org.apache.log4j.Level; import ch.qos.logback.classic.spi.ILoggingEvent; import com.opengamma.util.ArgumentChecker; /** * Implementation of {@link LogEvent} which handles logs sent through the Logback logging framework. */ public class LogbackLogEvent implements LogEvent { private final ILoggingEvent _loggingEvent; public LogbackLogEvent(ILoggingEvent loggingEvent) { ArgumentChecker.notNull(loggingEvent, "loggingEvent"); _loggingEvent = loggingEvent; } //------------------------------------------------------------------------- @Override public LogLevel getLevel() { switch (getLoggingEvent().getLevel().toInt()) { case Level.FATAL_INT: return LogLevel.FATAL; case Level.ERROR_INT: return LogLevel.ERROR; case Level.WARN_INT: return LogLevel.WARN; case Level.INFO_INT: return LogLevel.INFO; case Level.DEBUG_INT: return LogLevel.DEBUG; case Level.TRACE_INT: return LogLevel.TRACE; default: return LogLevel.WARN; } } @Override public String getMessage() { return getLoggingEvent().getFormattedMessage(); } //------------------------------------------------------------------------- private ILoggingEvent getLoggingEvent() { return _loggingEvent; } //------------------------------------------------------------------------- @Override public int hashCode() { final int prime = 31; return prime * ((_loggingEvent == null) ? 0 : _loggingEvent.hashCode()); } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof LogbackLogEvent)) { return false; } LogbackLogEvent other = (LogbackLogEvent) obj; return ObjectUtils.equals(_loggingEvent, other._loggingEvent); } }