Я получаю исключение ниже, когда log4j2 интегрирован с SpringBoot-2.Когда я пытаюсь понять исключение, создается впечатление, что JsonLayout в log4j2 пытается преобразовать строки журнала AutoConfigurationReport SpringBoot в JSON.И там это терпит неудачу.
ОШИБКА com.fasterxml.jackson.databind.exc.InvalidDefinitionException: не найден сериализатор для класса org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportMessage и не обнаружены свойства для создания BeanSerializer (чтобы избежать исключения,отключить SerializationFeature.FAIL_ON_EMPTY_BEANS) (через цепочку ссылок: org.apache.logging.log4j.core.impl.Log4jLogEvent ["message"]) com.fasterxml.jackson.databind.exc.InvalidDefinitionException: не найден сериализатор для класса org.sprf.boot.autoconfigure.logging.ConditionEvaluationReportMessage и не обнаружено никаких свойств для создания BeanSerializer (во избежание исключения отключите SerializationFeature.FAIL_ON_EMPTY_BEANS) (через цепочку ссылок: org.apache.logging.log4j.core.impl.Log4jLogEvent ["message"]).fasterxml.jackson.databind.exc.InvalidDefinitionException.from (InvalidDefinitionException.java:77) в com.fasterxml.jackson.databind.SerializerProvider.reportBadDefinition (SerializerProvider.java:1).191) в com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition (DatabindContext.java:313) в com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.failForEmpty (UnknownSerializer.java:71) в com.fasterxmlj..databind.ser.impl.UnknownSerializer.serialize (UnknownSerializer.java:33) при com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize (DefaultSerializerProvider.java:480) при com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue (DefaultSerializerProvider.java:319) по адресу com.fasterxml.jackson.databind.ObjectMapper.writeValue (ObjectMapper.java:2655) по адресу com.fasterxml.jackson.core.base.GeneratorBase.writeObject (GeneratorBase.java.java.java.java.jorg.apache.logging.log4j.core.jackson.ObjectMessageSerializer.serialize (ObjectMessageSerializer.java:44) в org.apache.logging.log4j.core.jackson.ObjectMessageSerializer.serialize (ObjectMessageSerializer.java:33 com)jackson.databind.ser.BeanPropertyWriter.serializeAsField (BeanPropertyWriter.java:727) по адресу com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter.serializeAsField (SimpleBeanPropertyFilter.java:208) по адресу com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.seanFizerJaseF:771) в com.fasterxml.jackson.databind.ser.BeanSerializer.serialize (BeanSerializer.java:153) в com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize (DefaultSerializerProvider.java:480) в com.fasterxml.jackson.databind..java: 1120) at com.fasterxml.jackson.databind.ObjectWriter.writeValue (ObjectWriter.java:966) в org.apache.logging.log4j.core.layout.AbstractJacksonLayout.toSerializable (AbstractJacksonLayout.java:304 at)apache.logging.log4j.core.layout.JsonLayout.toSerializable (JsonLayout.java:291) в org.apache.logging.log4j.core.layout.AbstractJacksonLayout.toSerializable (AbstractJacksonLayout.java:255) в org.apache.logging.log4j.core.layout.JsonLayout.toSerializable (Json:68) в org.apache.logging.log4j.core.layout.AbstractJacksonLayout.toSerializable (AbstractJacksonLayout.java:44) в org.apache.logging.log4j.core.layout.AbstractStringLayout.toByteArray (AbstractStringLayout) или gg.apache.logging.log4j.core.layout.AbstractLayout.encode (AbstractLayout.java:210) вorg.apache.logging.log4j.core.layout.AbstractLayout.encode (AbstractLayout.java:37)
в
org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.directEncodeEvent (AbstractOutputStreamAppender.java:197)
в
org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.tryAppend (AbstractOutputStreamAppender.java:190)
в
org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append (AbstractOutputStreamAppender.java:181)
в
org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender (AppenderControl.java:156)
в
org.apache.logging.log4j.core.config.AppenderControl.callAppender0 (AppenderControl.java:129)
в
org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion (AppenderControl.java:120)
в
org.apache.logging.log4j.core.config.AppenderControl.callAppender (AppenderControl.java:84)
в
org.apache.logging.log4j.core.config.LoggerConfig.callAppenders (LoggerConfig.java:464)
в
org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent (LoggerConfig.java:448)
в
org.apache.logging.log4j.core.config.LoggerConfig.log (LoggerConfig.java:431)
в
org.apache.logging.log4j.core.config.LoggerConfig.log (LoggerConfig.java:406)
в
org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log (AwaitCompletionReliabilityStrategy.java:63)
в org.apache.logging.log4j.core.Logger.logMessage (Logger.java:146)
в
org.apache.logging.log4j.spi.AbstractLogger.tryLogMessage (AbstractLogger.java:2170)
в
org.apache.logging.log4j.spi.AbstractLogger.logMessageTrackRecursion (AbstractLogger.java:2125)
в
org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely (AbstractLogger.java:2108)
в
org.apache.logging.log4j.spi.AbstractLogger.logMessage (AbstractLogger.java:1985)
в
org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled (AbstractLogger.java:1843)
в
org.apache.commons.logging.LogAdapter $ Log4jLog.log (LogAdapter.java:265)
в
org.apache.commons.logging.LogAdapter $ Log4jLog.debug (LogAdapter.java:235)
в
org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener.logAutoConfigurationReport (ConditionEvaluationReportLoggingListener.java:132)
в
org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener.logAutoConfigurationReport (ConditionEvaluationReportLoggingListener.java:108)
в
org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener.onApplicationEvent (ConditionEvaluationReportLoggingListener.java:97)
в
org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener $ ConditionEvaluationReportListener.onApplicationEvent (ConditionEvaluationReportLoggingListener.java:173)
в
org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener (SimpleApplicationEventMulticaster.java:172)
в
org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener (SimpleApplicationEventMulticaster.java:165)
в
org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent (SimpleApplicationEventMulticaster.java:139)
в
org.springframework.context.support.AbstractApplicationContext.publishEvent (AbstractApplicationContext.java:402)
в
org.springframework.context.support.AbstractApplicationContext.publishEvent (AbstractApplicationContext.java:359)
в
org.springframework.context.support.AbstractApplicationContext.finishRefresh (AbstractApplicationContext.java:896)
в
org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:552)
в
org.springframework.boot.SpringApplication.refresh (SpringApplication.java:775)
в
org.springframework.boot.SpringApplication.refreshContext (SpringApplication.java:397)
в
org.springframework.boot.SpringApplication.run (SpringApplication.java:316)
вorg.springframework.boot.builder.SpringApplicationBuilder.run (SpringApplicationBuilder.java:139)
в
org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext (BootstrapApplicationListener.java:203)
в
org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent (BootstrapApplicationListener.java:114)
в
org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent (BootstrapApplicationListener.java:71)
в
org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener (SimpleApplicationEventMulticaster.java:172)
в
org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener (SimpleApplicationEventMulticaster.java:165)
в
org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent (SimpleApplicationEventMulticaster.java:139)
в
org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent (SimpleApplicationEventMulticaster.java:127)
в
org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared (EventPublishingRunListener.java:75)
в
org.springframework.boot.SpringApplicationRunListeners.environmentPrepared (SpringApplicationRunListeners.java:54)
в
org.springframework.boot.SpringApplication.prepareEnvironment (SpringApplication.java:347)
в
org.springframework.boot.SpringApplication.run (SpringApplication.java:306)
в
org.springframework.boot.SpringApplication.run (SpringApplication.java:1260)
в
org.springframework.boot.SpringApplication.run (SpringApplication.java:1248)
Файл log4j2.xml, который я использую, выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info" name="someName" packages="com.somepackage.somename">
<Appenders>
<Console name="consoleAppender" target="SYSTEM_OUT">
<Filters>
<ThresholdFilter level="Debug" onMatch="ACCEPT" />
</Filters>
<JSONLayout complete="false" compact="true" eventEol="true" objectMessageAsJsonObject="true" includeStacktrace="true" stacktraceAsString="true" />
</Console>
</Appenders>
<Loggers>
<Root level="Debug">
<AppenderRef ref="consoleAppender" />
</Root>
</Loggers>
</Configuration>