From c7b22182838120ab148973d7d1e960d076ff3287 Mon Sep 17 00:00:00 2001 From: Ceki Gulcu Date: Mon, 29 Apr 2019 21:29:13 +0200 Subject: [PATCH] changes to the LoggingEvent interface --- .../org/slf4j/event/DefaultLoggingEvent.java | 100 +++++++++--------- .../org/slf4j/event/EventRecodingLogger.java | 2 +- .../java/org/slf4j/event/LoggingEvent.java | 21 ++-- .../slf4j/event/SubstituteLoggingEvent.java | 17 +++ .../slf4j/spi/DefaultLoggingEventBuilder.java | 19 ++-- .../org/slf4j/spi/LoggingEventBuilder.java | 4 +- .../org/slf4j/spi/NOPLoggingEventBuilder.java | 4 +- 7 files changed, 91 insertions(+), 76 deletions(-) diff --git a/slf4j-api/src/main/java/org/slf4j/event/DefaultLoggingEvent.java b/slf4j-api/src/main/java/org/slf4j/event/DefaultLoggingEvent.java index aed699e98..caaeb0952 100755 --- a/slf4j-api/src/main/java/org/slf4j/event/DefaultLoggingEvent.java +++ b/slf4j-api/src/main/java/org/slf4j/event/DefaultLoggingEvent.java @@ -6,112 +6,112 @@ import org.slf4j.Logger; import org.slf4j.Marker; +/** + * A default implementation of {@link LoggingEvent}. + * + * @author Ceki Gülcü + * + * @since 2.0.0 + */ public class DefaultLoggingEvent implements LoggingEvent { Logger logger; Level level; - + + String message; List markers; - List parameters; + List arguments; List keyValuePairs; - + Throwable cause; String threadName; + long timeStamp; + public DefaultLoggingEvent(Level level, Logger logger) { this.logger = logger; this.level = level; } - + public void addMarker(Marker marker) { getMarkers().add(marker); } @Override public List getMarkers() { - if(markers == null) { + if (markers == null) { markers = new ArrayList<>(5); } return markers; } - - - public void addParameter(Object p) { - getParameters().add(p); + + public void addArgument(Object p) { + getNonNullArguments().add(p); } - private List getParameters() { - - if(parameters == null) { - parameters = new ArrayList<>(5); + private List getNonNullArguments() { + if (arguments == null) { + arguments = new ArrayList<>(5); } - return parameters; + return arguments; + } + + @Override + public List getArguments() { + return arguments; + } + + @Override + public Object[] getArgumentArray() { + if (arguments == null) + return null; + return arguments.toArray(); } public void addKeyValue(String key, Object value) { - getKeyValuePairs().add(new KeyValuePair(key, value)); + getNonnullKeyValuePairs().add(new KeyValuePair(key, value)); } - - private List getKeyValuePairs() { - if(keyValuePairs == null) { + private List getNonnullKeyValuePairs() { + if (keyValuePairs == null) { keyValuePairs = new ArrayList<>(4); } return keyValuePairs; } - + @Override + public List getKeyValuePairs() { + return keyValuePairs; + } + public void setCause(Throwable cause) { this.cause = cause; } - + @Override public Level getLevel() { return level; } - - public void setThreadName(String threadName) { - this.threadName = threadName; - } - - - @Override - public String getThreadName() { - return threadName; - } - @Override public String getLoggerName() { return logger.getName(); } - - @Override public String getMessage() { - // TODO Auto-generated method stub - return null; + return message; } - - @Override - public Object[] getArgumentArray() { - // TODO Auto-generated method stub - return null; + public Throwable getThrowable() { + return cause; } - - @Override - public long getTimeStamp() { - // TODO Auto-generated method stub - return 0; + public String getThreadName() { + return threadName; } - @Override - public Throwable getThrowable() { - // TODO Auto-generated method stub - return null; + public long getTimeStamp() { + return timeStamp; } - } diff --git a/slf4j-api/src/main/java/org/slf4j/event/EventRecodingLogger.java b/slf4j-api/src/main/java/org/slf4j/event/EventRecodingLogger.java index f20c288c3..402caf7e3 100755 --- a/slf4j-api/src/main/java/org/slf4j/event/EventRecodingLogger.java +++ b/slf4j-api/src/main/java/org/slf4j/event/EventRecodingLogger.java @@ -33,7 +33,7 @@ private void recordEvent(Level level, Marker marker, String msg, Object[] args, loggingEvent.setLevel(level); loggingEvent.setLogger(logger); loggingEvent.setLoggerName(name); - loggingEvent.setMarker(marker); + loggingEvent.addMarker(marker); loggingEvent.setMessage(msg); loggingEvent.setArgumentArray(args); loggingEvent.setThrowable(throwable); diff --git a/slf4j-api/src/main/java/org/slf4j/event/LoggingEvent.java b/slf4j-api/src/main/java/org/slf4j/event/LoggingEvent.java index 4708fb2b7..1c26f0215 100755 --- a/slf4j-api/src/main/java/org/slf4j/event/LoggingEvent.java +++ b/slf4j-api/src/main/java/org/slf4j/event/LoggingEvent.java @@ -5,26 +5,23 @@ import org.slf4j.Marker; /** + * The minimal interface sufficient for the restitution of data passed + * by the user to the SLF4J API. * - * @author ceki + * @author Ceki Gülcü * @since 1.7.15 */ public interface LoggingEvent { Level getLevel(); - - List getMarkers(); - String getLoggerName(); - String getMessage(); - - String getThreadName(); - + List getArguments(); Object[] getArgumentArray(); - - long getTimeStamp(); - + + List getMarkers(); + List getKeyValuePairs(); Throwable getThrowable(); - + long getTimeStamp(); + String getThreadName(); } diff --git a/slf4j-api/src/main/java/org/slf4j/event/SubstituteLoggingEvent.java b/slf4j-api/src/main/java/org/slf4j/event/SubstituteLoggingEvent.java index d4574fcd8..6f3c14435 100755 --- a/slf4j-api/src/main/java/org/slf4j/event/SubstituteLoggingEvent.java +++ b/slf4j-api/src/main/java/org/slf4j/event/SubstituteLoggingEvent.java @@ -1,6 +1,7 @@ package org.slf4j.event; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import org.slf4j.Marker; @@ -15,6 +16,8 @@ public class SubstituteLoggingEvent implements LoggingEvent { String threadName; String message; Object[] argArray; + List keyValuePairList; + long timeStamp; Throwable throwable; @@ -69,6 +72,14 @@ public void setArgumentArray(Object[] argArray) { this.argArray = argArray; } + @Override + public List getArguments() { + if(argArray == null) { + return null; + } + return Arrays.asList(argArray); + } + public long getTimeStamp() { return timeStamp; } @@ -92,4 +103,10 @@ public Throwable getThrowable() { public void setThrowable(Throwable throwable) { this.throwable = throwable; } + + + @Override + public List getKeyValuePairs() { + return keyValuePairList; + } } diff --git a/slf4j-api/src/main/java/org/slf4j/spi/DefaultLoggingEventBuilder.java b/slf4j-api/src/main/java/org/slf4j/spi/DefaultLoggingEventBuilder.java index 77c7e4b96..280a35ec0 100755 --- a/slf4j-api/src/main/java/org/slf4j/spi/DefaultLoggingEventBuilder.java +++ b/slf4j-api/src/main/java/org/slf4j/spi/DefaultLoggingEventBuilder.java @@ -14,7 +14,6 @@ public class DefaultLoggingEventBuilder implements LoggingEventBuilder { public DefaultLoggingEventBuilder(Level level, Logger logger) { logggingEvent = new DefaultLoggingEvent(level, logger); - logggingEvent.setThreadName(Thread.currentThread().getName()); } /** @@ -38,11 +37,17 @@ public LoggingEventBuilder setCause(Throwable cause) { } @Override - public LoggingEventBuilder addParameter(Object p) { - logggingEvent.addParameter(p); + public LoggingEventBuilder addArgument(Object p) { + logggingEvent.addArgument(p); return this; } - + + @Override + public LoggingEventBuilder addArgument(Supplier objectSupplier) { + logggingEvent.addArgument(objectSupplier.get()); + return this; + } + @Override public void log(String message) { @@ -52,11 +57,7 @@ public void log(String message) { public void log(Supplier messageSupplier) { } - @Override - public LoggingEventBuilder addParameter(Supplier objectSupplier) { - logggingEvent.addParameter(objectSupplier.get()); - return this; - } + @Override public LoggingEventBuilder addKeyValue(String key, Object value) { diff --git a/slf4j-api/src/main/java/org/slf4j/spi/LoggingEventBuilder.java b/slf4j-api/src/main/java/org/slf4j/spi/LoggingEventBuilder.java index 19661f58a..81bfc30be 100755 --- a/slf4j-api/src/main/java/org/slf4j/spi/LoggingEventBuilder.java +++ b/slf4j-api/src/main/java/org/slf4j/spi/LoggingEventBuilder.java @@ -17,8 +17,8 @@ public interface LoggingEventBuilder { LoggingEventBuilder setCause(Throwable cause); LoggingEventBuilder addMarker(Marker marker); - LoggingEventBuilder addParameter(Object p); - LoggingEventBuilder addParameter(Supplier objectSupplier); + LoggingEventBuilder addArgument(Object p); + LoggingEventBuilder addArgument(Supplier objectSupplier); LoggingEventBuilder addKeyValue(String key, Object value); LoggingEventBuilder addKeyValue(String key, Supplier value); diff --git a/slf4j-api/src/main/java/org/slf4j/spi/NOPLoggingEventBuilder.java b/slf4j-api/src/main/java/org/slf4j/spi/NOPLoggingEventBuilder.java index d679eb894..e24bccee2 100755 --- a/slf4j-api/src/main/java/org/slf4j/spi/NOPLoggingEventBuilder.java +++ b/slf4j-api/src/main/java/org/slf4j/spi/NOPLoggingEventBuilder.java @@ -26,12 +26,12 @@ public LoggingEventBuilder addMarker(Marker marker) { } @Override - public LoggingEventBuilder addParameter(Object p) { + public LoggingEventBuilder addArgument(Object p) { return singleton(); } @Override - public LoggingEventBuilder addParameter(Supplier objectSupplier) { + public LoggingEventBuilder addArgument(Supplier objectSupplier) { return singleton(); }