Springboot中引入spring-boot-starter-web时,默认会引入self4j + logback,所以如果没有其他日志的需求,这两个就可以,他们支持的日志配置文件名可以为logback.xml,放在resources下即可生效:
<configuration>
<!-- 尽量别用绝对路径,如果带参数不同容器路径解释可能不同 -->
<property name="LOG_HOME" value="logs/"/>
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>[%level] %d{yyyy-MM-dd HH:mm:ss.SSS,Asia/Shanghai} %X{logId} %c.java - %msg%n</pattern>
</encoder>
</appender>
<!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--<Encoding>UTF-8</Encoding>-->
<!--<file>${LOG_HOME}/server.log</file>-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/server.log.%d{yyyy-MM-dd-HH}</FileNamePattern>
<MaxHistory>60</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>[%level] %d{yyyy-MM-dd HH:mm:ss.SSS,Asia/Shanghai} %X{logId} %c.java - %msg%n</pattern>
<charset>utf-8</charset>
</encoder>
</appender>
<appender name="mysql" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/mysql.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/mysql.log.%d{yyyy-MM-dd-HH}</FileNamePattern>
<MaxHistory>60</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>[%level] %d{yyyy-MM-dd HH:mm:ss.SSS,Asia/Shanghai} %X{logId} %c.java - %msg%n</pattern>
<charset>utf-8</charset>
</encoder>
</appender>
<appender name="redis" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/redis.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/redis.log.%d{yyyy-MM-dd-HH}</FileNamePattern>
<MaxHistory>60</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>[%level] %d{yyyy-MM-dd HH:mm:ss.SSS,Asia/Shanghai} %X{logId} %c.java - %msg%n</pattern>
<charset>utf-8</charset>
</encoder>
</appender>
<!-- 用来设置某一个包或者具体的某一个类的日志打印级别,包名要与实际项目一致 -->
<logger name="org.mybatis" level="DEBUG" additivity="false">
<appender-ref ref="mysql"/>
</logger>
<!-- 将级别为“DEBUG”及大于“DEBUG”的日志信息传递给root处理,本身并不打印 -->
<logger name="org.springframework.boot" level="INFO"/>
<root level="info"> <!-- root将级别为“INFO”及大于“INFO”的日志信息交给已经配置好的名为“Console”的appender处理,“Console”appender将信息打印到Console; -->
<appender-ref ref="Console"/>
<!-- 标识这个appender将会添加到这个logger -->
<appender-ref ref="FILE"/>
</root>
</configuration>
其中已经把日志的输出模式中时区改为了中国,确保日志输出时间正确。日志中也已经设定了输出路径,与src同级。执行数据库的CRUD时,会讲sql语句和返回结果输出到控制台: