![](/img/trans.png)
[英]ERROR: org.springframework.web.context.ContextLoader - Context initialization failed
[英]How to log org.springframework.web.context.ContextLoader with logback
我對記錄 Spring bootstrap 沒有什么問題。 我無法使用 logback 記錄 org.springframework.web.context.ContextLoader。 有人可以指出如何登錄 Spring Boot 嗎?
這是我的 logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- load props file -->
<define name="propExists" class="ch.qos.logback.core.property.ResourceExistsPropertyDefiner">
<resource>META-INF/crdb.prod.properties</resource>
</define>
<if condition='${propExists}'>
<then><property resource="META-INF/crdb.prod.properties" /></then>
</if>
<define name="propExists" class="ch.qos.logback.core.property.ResourceExistsPropertyDefiner">
<resource>META-INF/crdb.test.properties</resource>
</define>
<if condition='${propExists}'>
<then><property resource="META-INF/crdb.test.properties" /></then>
</if>
<define name="propExists" class="ch.qos.logback.core.property.ResourceExistsPropertyDefiner">
<resource>META-INF/crdb.dev.properties</resource>
</define>
<if condition='${propExists}'>
<then><property resource="META-INF/crdb.dev.properties" /></then>
</if>
<!-- Send debug messages to System.out -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- By default, encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] [%X{distribute_trace_id}] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- Send debug messages to a file -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${catalina.home}/logs/crdb.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} [%thread] [%X{distribute_trace_id}] %-5level %logger{36} - %msg%n</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>${catalina.home}/logs/crdb.%i.log.zip</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>10</MaxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>2MB</MaxFileSize>
</triggeringPolicy>
</appender>
<property name="APP_VERSION" value="1.2.1"/>
<!-- max size of the log file, when the log file will be bigger, then will be split -->
<property name="LOG_FILE_MAX_SIZE" value="200MB"/>
<!-- max size of logs in ALL log files -->
<property name="LOG_TOTAL_SIZE_CAP" value="1GB"/>
<!-- count of days - files will be persisted for these days -->
<property name="LOG_FILE_MAX_HISTORY" value="3"/>
<!-- Splunk Monitoring Messages -->
<appender name="SPLUNK_MONITORING" class="ch.qos.logback.core.rolling.RollingFileAppender" additivity="false">
<file>${catalina.home}/logs/splunk_monitoring/crdb.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%msg%n</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- daily rollover inferred from the file name -->
<fileNamePattern>${catalina.home}/logs/splunk_monitoring/crdb.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>${LOG_FILE_MAX_SIZE}</maxFileSize>
<maxHistory>${LOG_FILE_MAX_HISTORY}</maxHistory>
<totalSizeCap>${LOG_TOTAL_SIZE_CAP}</totalSizeCap>
</rollingPolicy>
</appender>
<appender name="SPLUNK_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${catalina.home}/logs/splunk/crdb.log</file>
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
<version>${APP_VERSION}</version>
<timestampPattern>yyyy-MM-dd'T'HH:mm:ss.SSS</timestampPattern>
<customFields>{"app_name":"CRDB", "env": "${env.key}", "hostname": "${hostname}"}</customFields>
<fieldNames>
<timestamp>time</timestamp>
<version>app_version</version>
<levelValue>[ignore]</levelValue>
</fieldNames>
<throwableConverter class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
<exclude>net\.sf\.cglib\..*</exclude>
<maxDepthPerThrowable>30</maxDepthPerThrowable>
<rootCauseFirst>true</rootCauseFirst>
</throwableConverter>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- daily rollover inferred from the file name -->
<fileNamePattern>${catalina.home}/logs/splunk/crdb.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>${LOG_FILE_MAX_SIZE}</maxFileSize>
<maxHistory>${LOG_FILE_MAX_HISTORY}</maxHistory>
<totalSizeCap>${LOG_TOTAL_SIZE_CAP}</totalSizeCap>
</rollingPolicy>
</appender>
<logger name="splunk_monitoring" level="INFO" additivity="false">
<appender-ref ref="SPLUNK_MONITORING"/>
</logger>
<logger name="org.springframework.web.context.*" level="INFO" additivity="false">
<appender-ref ref="STDOUT"/>
</logger>
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE"/>
<appender-ref ref="SPLUNK_FILE"/>
</root>
</configuration>
當我嘗試此配置時,它只寫入控制台,即 log4j:WARN 找不到記錄器的附加程序(org.springframework.web.context.ContextLoader)。 log4j:WARN 請正確初始化 log4j 系統。 謝謝你。
試過這個嗎?
<logger name="org.springframework.web">
<level value="info" />
<appender-ref ref="console" />
</logger>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.