
Author: seb Date: Wed Aug 30 18:48:35 2006 New Revision: 497 Modified: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/Logger.java logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/pattern/MessageConverter.java logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/spi/LoggingEvent.java logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/PatternLayoutTest.java logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/boolex/JaninoEventEvaluatorTest.java logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/joran/EvaluatorJoranTest.java logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/pattern/ConverterTest.java Log: - Added - Added an Object[] argArray parameter to the LoggingEvent constructor. - Updated client classes accordingly. - Removed formattedMessage != null check in MessageConverter. - Removed message formatting calls from Logger. Modified: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/Logger.java ============================================================================== --- logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/Logger.java (original) +++ logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/Logger.java Wed Aug 30 18:48:35 2006 @@ -358,34 +358,33 @@ return childLogger; } + /** + * The next three methods could be merged. + * However, we decided not to merge them to make the calls to + * these methods more easily understandable, avoiding many instances + * of passing null parameters. + */ private void filterAndLog(String caller, Level level, String format, Throwable t) { - LoggingEvent le = new LoggingEvent(caller, this, level, format, t); + LoggingEvent le = new LoggingEvent(caller, this, level, format, t, null); if (loggerContext.getFilterChainDecision(le) != Filter.DENY) { - le.setFormattedMessage(format); callAppenders(le); } } private void filterAndLog(String caller, Level level, String format, Object[] argArray, Throwable t) { - LoggingEvent le = new LoggingEvent(caller, this, level, format, t); - le.setArgumentArray(argArray); + LoggingEvent le = new LoggingEvent(caller, this, level, format, t, argArray); if (loggerContext.getFilterChainDecision(le) != Filter.DENY) { - String formattedMessage = MessageFormatter.arrayFormat(format, argArray); - le.setFormattedMessage(formattedMessage); callAppenders(le); } } private void filterAndLog(String caller, Level level, Marker marker, String format, Object[] argArray, Throwable t) { - LoggingEvent le = new LoggingEvent(caller, this, level, format, t); + LoggingEvent le = new LoggingEvent(caller, this, level, format, t, argArray); le.setMarker(marker); - le.setArgumentArray(argArray); if (loggerContext.getFilterChainDecision(le) != Filter.DENY) { - String formattedMessage = MessageFormatter.arrayFormat(format, argArray); - le.setFormattedMessage(formattedMessage); callAppenders(le); } } Modified: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/pattern/MessageConverter.java ============================================================================== --- logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/pattern/MessageConverter.java (original) +++ logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/pattern/MessageConverter.java Wed Aug 30 18:48:35 2006 @@ -20,9 +20,6 @@ public String convert(Object event) { LoggingEvent le = (LoggingEvent) event; - if (le.getFormattedMessage() == null) { - return le.getMessage(); - } return le.getFormattedMessage(); } Modified: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/spi/LoggingEvent.java ============================================================================== --- logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/spi/LoggingEvent.java (original) +++ logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/spi/LoggingEvent.java Wed Aug 30 18:48:35 2006 @@ -18,6 +18,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.Marker; +import org.slf4j.impl.MessageFormatter; import ch.qos.logback.classic.Level; @@ -97,7 +98,7 @@ } public LoggingEvent(String fqcn, Logger logger, Level level, String message, - Throwable throwable) { + Throwable throwable, Object[] argArray) { this.fqnOfLoggerClass = fqcn; this.logger = logger; this.level = level; @@ -106,14 +107,13 @@ if (throwable != null) { this.throwableInfo = new ThrowableInformation(throwable); } - timeStamp = System.currentTimeMillis(); - } - - public void setArgumentArray(Object[] argArray) { - if (this.argumentArray != null) { - throw new IllegalStateException("argArray has been already set"); + + if (argArray != null) { + formattedMessage = MessageFormatter.arrayFormat(message, argArray); + } else { + formattedMessage = message; } - this.argumentArray = argArray; + timeStamp = System.currentTimeMillis(); } public Object[] getArgumentArray() { @@ -257,14 +257,6 @@ return formattedMessage; } - public void setFormattedMessage(String formattedMessage) { - if (this.formattedMessage != null) { - throw new IllegalStateException( - "The formatted message has been already set for this event."); - } - this.formattedMessage = formattedMessage; - } - public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { threadName = (String) in.readObject(); Modified: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/PatternLayoutTest.java ============================================================================== --- logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/PatternLayoutTest.java (original) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/PatternLayoutTest.java Wed Aug 30 18:48:35 2006 @@ -45,7 +45,7 @@ LoggingEvent makeLoggingEvent(Exception ex) { return new LoggingEvent(ch.qos.logback.core.pattern.FormattingConverter.class - .getName(), logger, Level.INFO, "Some message", ex); + .getName(), logger, Level.INFO, "Some message", ex, null); } public Object getEventObject() { Modified: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/boolex/JaninoEventEvaluatorTest.java ============================================================================== --- logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/boolex/JaninoEventEvaluatorTest.java (original) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/boolex/JaninoEventEvaluatorTest.java Wed Aug 30 18:48:35 2006 @@ -32,7 +32,7 @@ LoggingEvent makeLoggingEvent(Exception ex) { LoggingEvent e = new LoggingEvent(ch.qos.logback.core.pattern.FormattingConverter.class - .getName(), logger, Level.INFO, "Some message", ex); + .getName(), logger, Level.INFO, "Some message", ex, null); return e; } Modified: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/joran/EvaluatorJoranTest.java ============================================================================== --- logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/joran/EvaluatorJoranTest.java (original) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/joran/EvaluatorJoranTest.java Wed Aug 30 18:48:35 2006 @@ -44,7 +44,7 @@ assertNotNull(evaluator); Logger logger = loggerContext.getLogger("xx"); - LoggingEvent event = new LoggingEvent("foo", logger, Level.DEBUG, "Hello world",null); + LoggingEvent event = new LoggingEvent("foo", logger, Level.DEBUG, "Hello world", null, null); StatusPrinter.print(loggerContext.getStatusManager()); assertTrue(evaluator.evaluate(event)); Modified: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/pattern/ConverterTest.java ============================================================================== --- logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/pattern/ConverterTest.java (original) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/pattern/ConverterTest.java Wed Aug 30 18:48:35 2006 @@ -50,7 +50,7 @@ // particular test. LoggingEvent makeLoggingEvent(Exception ex) { return new LoggingEvent(ch.qos.logback.core.pattern.FormattingConverter.class - .getName(), logger, Level.INFO, "Some message", ex); + .getName(), logger, Level.INFO, "Some message", ex, null); } Exception getException(String msg, Exception cause) {