Skip to content

Commit

Permalink
added support for getKeyValuePairs() in ILoggingEvent
Browse files Browse the repository at this point in the history
Signed-off-by: Ceki Gulcu <ceki@qos.ch>
  • Loading branch information
ceki committed Aug 9, 2021
1 parent e3f0919 commit 910bf99
Show file tree
Hide file tree
Showing 5 changed files with 70 additions and 3 deletions.
Expand Up @@ -17,6 +17,7 @@
import java.util.Map;

import org.slf4j.Marker;
import org.slf4j.event.KeyValuePair;

import ch.qos.logback.classic.Level;
import ch.qos.logback.core.spi.DeferredProcessingAware;
Expand Down Expand Up @@ -92,6 +93,14 @@ public interface ILoggingEvent extends DeferredProcessingAware {
*/
long getSequenceNumber();

/**
* A list of {@link KeyValuePair} objects. The returned list may be null.
*
* @return may be null
* @since 1.3.0
*/
List<KeyValuePair> getKeyValuePairs();

void prepareForDeferredProcessing();

}
Expand Up @@ -13,8 +13,12 @@
*/
package ch.qos.logback.classic.spi;

import java.util.List;

import org.slf4j.Marker;
import org.slf4j.spi.DefaultLoggingEventBuilder;

import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;

/**
Expand All @@ -35,8 +39,24 @@ public LogbackLoggingEventBuilder(Logger logger, org.slf4j.event.Level level) {
}

@Override
protected void log(org.slf4j.event.LoggingEvent logggingEvent) {
protected void log(org.slf4j.event.LoggingEvent sle) {
org.slf4j.event.Level slf4jLevel = sle.getLevel();
Level logbackLevel = Level.convertAnSLF4JLevel(slf4jLevel);
Logger logbackLogger = (Logger) this.logger;
LoggingEvent lle = new LoggingEvent(FQCN, logbackLogger, logbackLevel, sle.getMessage(), sle.getThrowable(), sle.getArgumentArray());
List<Marker> markers = sle.getMarkers();

if(markers != null) {
markers.forEach(m -> lle.addMarker(m));
}

lle.setKeyValuePairs(sle.getKeyValuePairs());


// Note that at this point, any calls makde with a logger disabled
// for a given level will be already filtered out. TurboFilters cannot
// prevent that.
logbackLogger.callAppenders(lle);
}

}
Expand Up @@ -22,6 +22,7 @@

import org.slf4j.MDC;
import org.slf4j.Marker;
import org.slf4j.event.KeyValuePair;
import org.slf4j.helpers.MessageFormatter;
import org.slf4j.spi.MDCAdapter;

Expand Down Expand Up @@ -94,6 +95,11 @@ public class LoggingEvent implements ILoggingEvent {

private Map<String, String> mdcPropertyMap;

/**
* @since 1.3.0
*/
List<KeyValuePair> keyValuePairs;

/**
* The number of milliseconds elapsed from 1/1/1970 until logging event was
* created.
Expand Down Expand Up @@ -140,7 +146,7 @@ public LoggingEvent(String fqcn, Logger logger, Level level, String message, Thr

}

private Throwable extractThrowableAnRearrangeArguments(Object[] argArray) {
private Throwable extractThrowableAnRearrangeArguments(Object[] argArray) {
Throwable extractedThrowable = EventArgUtil.extractThrowable(argArray);
if (EventArgUtil.successfulExtraction(extractedThrowable)) {
this.argumentArray = EventArgUtil.trimmedCopy(argArray);
Expand All @@ -159,6 +165,16 @@ public Object[] getArgumentArray() {
return this.argumentArray;
}

public void setKeyValuePairs(List<KeyValuePair> kvp) {
this.keyValuePairs = kvp;
}

@Override
public List<KeyValuePair> getKeyValuePairs() {
return this.keyValuePairs;
}


public Level getLevel() {
return level;
}
Expand Down Expand Up @@ -223,6 +239,11 @@ public void prepareForDeferredProcessing() {
this.getMDCPropertyMap();
}


public void setLoggerContext(LoggerContext lc) {
this.loggerContext = lc;
}

public LoggerContextVO getLoggerContextVO() {
return loggerContextVO;
}
Expand Down
Expand Up @@ -21,6 +21,7 @@
import java.util.Map;

import org.slf4j.Marker;
import org.slf4j.event.KeyValuePair;
import org.slf4j.helpers.MessageFormatter;

import ch.qos.logback.classic.Level;
Expand Down Expand Up @@ -57,6 +58,7 @@ public class LoggingEventVO implements ILoggingEvent, Serializable {
private ThrowableProxyVO throwableProxy;
private StackTraceElement[] callerDataArray;
private List<Marker> markerList;
private List<KeyValuePair> keyValuePairList;
private Map<String, String> mdcPropertyMap;
private long timeStamp;
private long sequenceNumber;
Expand All @@ -70,9 +72,11 @@ public static LoggingEventVO build(ILoggingEvent le) {
ledo.message = (le.getMessage());
ledo.argumentArray = (le.getArgumentArray());
ledo.markerList = le.getMarkerList();
ledo.keyValuePairList = le.getKeyValuePairs();
ledo.mdcPropertyMap = le.getMDCPropertyMap();

ledo.timeStamp = le.getTimeStamp();
ledo.timeStamp = le.getSequenceNumber();
ledo.sequenceNumber = le.getSequenceNumber();
ledo.throwableProxy = ThrowableProxyVO.build(le.getThrowableProxy());
// add caller data only if it is there already
// fixes http://jira.qos.ch/browse/LBCLASSIC-145
Expand Down Expand Up @@ -160,6 +164,11 @@ public Map<String, String> getMdc() {
return mdcPropertyMap;
}

@Override
public List<KeyValuePair> getKeyValuePairs() {
return this.keyValuePairList;
}

public void prepareForDeferredProcessing() {
}

Expand Down Expand Up @@ -251,4 +260,6 @@ public boolean equals(Object obj) {
return false;
return true;
}


}
Expand Up @@ -4,6 +4,7 @@
import java.util.Map;

import org.slf4j.Marker;
import org.slf4j.event.KeyValuePair;

import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.spi.ILoggingEvent;
Expand Down Expand Up @@ -110,5 +111,10 @@ public String getFormattedMessage() {
return null;
}

@Override
public List<KeyValuePair> getKeyValuePairs() {
return null;
}


}

0 comments on commit 910bf99

Please sign in to comment.