簡體   English   中英

如何使用 logback 記錄 org.springframework.web.context.ContextLoader

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM