Slf4jLogger expects also null as a marker to support Warning4 events (#26055)

This commit is contained in:
Karel Čemus 2018-12-19 12:07:42 +01:00 committed by Arnout Engelen
parent 2644b0e463
commit e8403f0493
3 changed files with 10 additions and 0 deletions

View file

@ -833,6 +833,7 @@ object Logging {
/** INTERNAL API, Marker interface for LogEvents containing Markers, which can be set for example on an slf4j logger */
sealed trait LogEventWithMarker extends LogEvent {
/** Marker attribute is nullable due to backward binary compatibility in the class `Warning4` */
def marker: LogMarker
/** Appends the marker to the Debug/Info/Warning/Error toString representations */
override def toString = {

View file

@ -113,6 +113,7 @@ class Slf4jLogger extends Actor with SLF4JLogging with RequiresMessageQueue[Logg
event match {
case m: LogEventWithMarker
m.marker match {
case null null
case slf4jMarker: Slf4jLogMarker slf4jMarker.marker
case marker MarkerFactory.getMarker(marker.name)
}

View file

@ -155,6 +155,14 @@ class Slf4jLoggerSpec extends AkkaSpec(Slf4jLoggerSpec.config) with BeforeAndAft
s should include("msg=[Message with custom MDC values]")
}
"support null marker" in {
producer ! StringWithMarker("security-wise interesting message", null)
awaitCond(outputString.contains("----"), 5 seconds)
val s = outputString
s should include("msg=[security-wise interesting message]")
}
"Support null values in custom MDC" in {
producer ! StringWithMDC("Message with null custom MDC values", Map("ticketNumber" 3671, "ticketDesc" null))