【问题标题】:How to configure logback to log separate packages into separate log files?如何配置 logback 将单独的包记录到单独的日志文件中?
【发布时间】:2020-09-29 13:23:08
【问题描述】:

我的日志必须根据包分成单独的文件。所以,Spring 异常必须写入spring.log,DAO 异常写入dao.log,Service 异常写入service.log,Apache Tomcat 写入server.log

此时,只有spring.log 正在写入。 我该如何解决这个问题,以便写入所有四个日志文件?

<configuration scan="true">

    <appender name="daoLog"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>logs/dao.log</file>
        <rollingPolicy
            class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>

        <triggeringPolicy
            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <maxFileSize>5MB</maxFileSize>
        </triggeringPolicy>

        <encoder>
            <charset>UTF-8</charset>
            <pattern>%d %-4relative [%thread] %-5level %logger{35} - %msg%n
            </pattern>
        </encoder>
    </appender>

    <appender name="serviceLog"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>logs/service.log</file>

        <rollingPolicy
            class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>

        <triggeringPolicy
            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <maxFileSize>5MB</maxFileSize>
        </triggeringPolicy>

        <encoder>
            <charset>UTF-8</charset>
            <pattern>%d %-4relative [%thread] %-5level %logger{35} - %msg%n
            </pattern>
        </encoder>
    </appender>

    <appender name="springLog"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>logs/spring.log</file>

        <rollingPolicy
            class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>

        <triggeringPolicy
            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <maxFileSize>5MB</maxFileSize>
        </triggeringPolicy>

        <encoder>
            <charset>UTF-8</charset>
            <pattern>%d %-4relative [%thread] %-5level %logger{35} - %msg%n
            </pattern>
        </encoder>
    </appender>

    <appender name="serverLog"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>logs/server.log</file>

        <rollingPolicy
            class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>

        <triggeringPolicy
            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <maxFileSize>5MB</maxFileSize>
        </triggeringPolicy>

        <encoder>
            <charset>UTF-8</charset>
            <pattern>%d %-4relative [%thread] %-5level %logger{35} - %msg%n
            </pattern>
        </encoder>
    </appender>

    <logger name="com.example.dao">
        <appender-ref ref="daoLog" />
    </logger>

    <logger name="com.example.service">
        <appender-ref ref="serviceLog" />
    </logger>

    <logger name="org.springframework">
        <appender-ref ref="springLog" />
    </logger>

    <logger name="org.apache.tomcat">
        <appender-ref ref="serverLog" />
    </logger>

</configuration>

【问题讨论】:

    标签: xml spring logback


    【解决方案1】:

    您的配置看起来正确。问题可能来自您记录消息的地方。唯一缺少的部分是日志级别,如果您不声明它,则默认为info 级别。您需要确保从代码中以正确的级别记录它。

    【讨论】:

      猜你喜欢
      • 2013-08-13
      • 1970-01-01
      • 2017-11-01
      • 2011-10-20
      • 2011-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多