slf4j(The Simple Logging Facade for Java)是日志框架的抽象,而 log4j logback 是具体实现了的日志框架。
- log4j:是 apache 实现的一个开源日志组件。(Wrapped implementations)
- logback:同样是由 log4j 的作者设计完成的,拥有更好的特性,是用来取代 log4j 的一个日志框架。是 slf4j 的原生实现。(Native implementations)
log4j 和 logback 可以单独的使用,也可以绑定 slf4j 一起使用。不推荐单独使用。
SpringBoot 默认使用 Logback。
logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<property name="logback.logdir" value="TXSR/SkuSync"/>
<property name="logback.appname" value="SkuSync"/>
<!--输出到控制台 ConsoleAppender-->
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
<!--展示格式 layout-->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d [%thread] %-5level %logger{36} %line - %msg%n</pattern>
</layout>
</appender>
<appender name="fileLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--日志名称,如果没有File 属性,那么只会使用FileNamePattern的文件路径规则
如果同时有<File>和<FileNamePattern>,那么当天日志是<File>,明天会自动把今天
的日志改名为今天的日期。即,<File> 的日志都是当天的。
-->
<File>${logback.logdir}/${logback.appname}.log</File>
<!--滚动策略,按照时间滚动 TimeBasedRollingPolicy-->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间-->
<FileNamePattern>${logback.logdir}/${logback.appname}.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<maxFileSize>500MB</maxFileSize>
<!--只保留最近7天的日志-->
<maxHistory>7</maxHistory>
<!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志-->
<!-- <totalSizeCap>1GB</totalSizeCap>-->
</rollingPolicy>
<!--日志输出编码格式化-->
<encoder>
<charset>UTF-8</charset>
<pattern>%d [%thread] %-5level %logger{36} %line - %msg%n</pattern>
</encoder>
</appender>
<!--指定最基础的日志输出级别-->
<root level="INFO">
<!--appender将会添加到这个loger-->
<!-- <appender-ref ref="consoleLog"/>-->
<appender-ref ref="fileLog"/>
</root>
</configuration>