场景
- 项目在本地和服务器运行要求打印日志的粒度和级别是不同的。
- 例如:
- 本地开发要求控制台输出的日志更详细,方便调试,日志级别为:DEBUG
- 在服务器只需要保留错误日志即可,如果像本地记录日志会增加服务器压力,日志级别为:ERROR
安排
1、创建 logback.xml 文件
在resources目录下或者说在application.properties相同的目录下创建,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<springProperty scope="context" name="LOG_HOME" source="logging.file.path"/>
<!-- 控制台输出log信息 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>[%d{HH:mm:ss.SSS}][%p][%c{40}][%t] %m%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</appender>
<!-- 按日期生成日志文件 -->
<appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_HOME}error.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}error.log.%d{yyyy-MM-dd}.gz</fileNamePattern>
<maxHistory>10</maxHistory>
</rollingPolicy>
<encoder>
<pattern>[%d{HH:mm:ss.SSS}][%p][%c{40}][%t] %m%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 -->
<root level="ERROR">
<appender-ref ref="console"/>
<appender-ref ref="error"/>
</root>
</configuration>
2、控制台打印SQL
本地开发设置为:DEBUG
服务器不需要设置
logging:
level:
# 包名: debug
# 例如
com.test.demo: debug
效果
- 本地控制台打印SQL和报错信息及保存错误日志文件
- 服务器控制它打印报错信息及保存错误日志文件