【问题标题】:How to log org.springframework.web.context.ContextLoader with logback如何使用 logback 记录 org.springframework.web.context.ContextLoader
【发布时间】:2021-10-25 13:57:40
【问题描述】:

我在记录 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 系统。谢谢。

【问题讨论】:

    标签: java spring logback


    【解决方案1】:

    试过了吗?

    <logger name="org.springframework.web">
    <level value="info" /> 
    <appender-ref ref="console" />     
    </logger>
    

    【讨论】:

      猜你喜欢
      • 2019-12-27
      • 1970-01-01
      • 1970-01-01
      • 2022-12-23
      • 1970-01-01
      • 1970-01-01
      • 2014-08-02
      • 1970-01-01
      • 2020-02-25
      相关资源
      最近更新 更多