如何配置logback以将单独的包记录到单独的日志文件中



我的日志必须根据包分成不同的文件。因此,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>

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

最新更新