合理配置日志级别,将重要日志写入文件,通过查看文件中错误信息,不会产生idea控制台错误日志被滚动覆盖问题 server下的logback.xml可参考配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 配置文件修改时重新加载,默认true -->
<configuration scan="true">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern><![CDATA[%n[%d{yyyy-MM-dd HH:mm:ss.SSS}] [level: %p] [Thread: %t] [ Class:%c >> Method: %M:%L ]%n%p:%m%n]]></pattern>
</encoder>
</appender>
<appender name="metalogfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern><![CDATA[%n[%d{yyyy-MM-dd HH:mm:ss.SSS}] [level: %p] [Thread: %t] [ Class:%c >> Method: %M:%L ]%n%p:%m%n]]></pattern>
</encoder>
<file>logs/metalogfile.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>logs/metalogfile.-%d{yyyyMMdd}.%i.log</fileNamePattern>
<!-- 每天一个日志文件,当天的日志文件超过10MB时,生成新的日志文件,当天的日志文件数量超过totalSizeCap/maxFileSize,日志文件就会被回滚覆盖。 -->
<maxFileSize>10MB</maxFileSize>
<maxHistory>30</maxHistory>
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
</appender>
<appender name="sqllogfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>%d %-5level [%thread] %logger{0}: %msg%n</pattern>
</encoder>
<file>logs/sqllogfile.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>logs/sqllogfile.-%d{yyyyMMdd}.%i.log</fileNamePattern>
<!-- 每天一个日志文件,当天的日志文件超过10MB时,生成新的日志文件,当天的日志文件数量超过totalSizeCap/maxFileSize,日志文件就会被回滚覆盖。 -->
<maxFileSize>10MB</maxFileSize>
<maxHistory>30</maxHistory>
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
</appender>
<appender name="businesslogfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern><![CDATA[%n[%d{yyyy-MM-dd HH:mm:ss.SSS}] [level: %p] [Thread: %t] [ Class:%c >> Method: %M:%L ]%n%p:%m%n]]></pattern>
</encoder>
<file>logs/businesslogfile.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>logs/businesslogfile.-%d{yyyyMMdd}.%i.log</fileNamePattern>
<!-- 每天一个日志文件,当天的日志文件超过10MB时,生成新的日志文件,当天的日志文件数量超过totalSizeCap/maxFileSize,日志文件就会被回滚覆盖。 -->
<maxFileSize>10MB</maxFileSize>
<maxHistory>30</maxHistory>
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
</appender>
<appender name="LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern><![CDATA[%n[%d{yyyy-MM-dd HH:mm:ss.SSS}] [level: %p] [Thread: %t] [ Class:%c >> Method: %M:%L ]%n%p:%m%n]]></pattern>
</encoder>
<file>logs/root.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>logs/root.-%d{yyyyMMdd}.%i.log</fileNamePattern>
<!-- 每天一个日志文件,当天的日志文件超过10MB时,生成新的日志文件,当天的日志文件数量超过totalSizeCap/maxFileSize,日志文件就会被回滚覆盖。 -->
<maxFileSize>10MB</maxFileSize>
<maxHistory>30</maxHistory>
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
</appender>
<!-- 以下定义的logger是一个过滤器链, appender-ref指定输出方式-->
<!-- sql error日志 -->
<logger name="sql_logger" level="ERROR" additivity="false">
<appender-ref ref="STDOUT"/>
<appender-ref ref="sqllogfile"/>
</logger>
<!-- 引擎error日志 -->
<logger name="com.sie.snest.engine" level="ERROR" additivity="false">
<appender-ref ref="STDOUT"/>
<appender-ref ref="metalogfile"/>
</logger>
<!-- com包的error日志 -->
<logger name="com" level="ERROR" additivity="false">
<appender-ref ref="STDOUT"/>
<appender-ref ref="businesslogfile"/>
</logger>
<!-- 除com包之外的其他包debug日志 -->
<root level="DEBUG">
<appender-ref ref="STDOUT"/>
<appender-ref ref="LOG_FILE"/>
</root>
</configuration>