diff options
Diffstat (limited to 'slf4j-api/src/main/java/org/slf4j/event/DefaultLoggingEvent.java')
-rwxr-xr-x | slf4j-api/src/main/java/org/slf4j/event/DefaultLoggingEvent.java | 140 |
1 files changed, 140 insertions, 0 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 new file mode 100755 index 00000000..5a101438 --- /dev/null +++ b/slf4j-api/src/main/java/org/slf4j/event/DefaultLoggingEvent.java @@ -0,0 +1,140 @@ +package org.slf4j.event; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +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<Marker> markers; + List<Object> arguments; + List<KeyValuePair> keyValuePairs; + + Throwable throwable; + String threadName; + long timeStamp; + + String callerBoundary; + + public DefaultLoggingEvent(Level level, Logger logger) { + this.logger = logger; + this.level = level; + } + + public void addMarker(Marker marker) { + if (markers == null) { + markers = new ArrayList<>(2); + } + markers.add(marker); + } + + @Override + public List<Marker> getMarkers() { + return markers; + } + + public void addArgument(Object p) { + getNonNullArguments().add(p); + } + + public void addArguments(Object... args) { + getNonNullArguments().addAll(Arrays.asList(args)); + } + + private List<Object> getNonNullArguments() { + if (arguments == null) { + arguments = new ArrayList<>(3); + } + return arguments; + } + + @Override + public List<Object> getArguments() { + return arguments; + } + + @Override + public Object[] getArgumentArray() { + if (arguments == null) + return null; + return arguments.toArray(); + } + + public void addKeyValue(String key, Object value) { + getNonnullKeyValuePairs().add(new KeyValuePair(key, value)); + } + + private List<KeyValuePair> getNonnullKeyValuePairs() { + if (keyValuePairs == null) { + keyValuePairs = new ArrayList<>(4); + } + return keyValuePairs; + } + + @Override + public List<KeyValuePair> getKeyValuePairs() { + return keyValuePairs; + } + + public void setThrowable(Throwable cause) { + this.throwable = cause; + } + + @Override + public Level getLevel() { + return level; + } + + @Override + public String getLoggerName() { + return logger.getName(); + } + + @Override + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public Throwable getThrowable() { + return throwable; + } + + public String getThreadName() { + return threadName; + } + + public long getTimeStamp() { + return timeStamp; + } + + public void setTimeStamp(long timeStamp) { + this.timeStamp = timeStamp; + } + + public void setCallerBoundary(String fqcn) { + this.callerBoundary = fqcn; + } + + public String getCallerBoundary() { + return callerBoundary; + } +} |