零、Slf4j与Logback组合使用, 两者同时输出
一、application.yml配置(Sl4j)
logging:
level:
#不同目录下的日志可配置不同级别
org.springfromework.web: INFO
org.hibernate: ERROR
#日志所在文件夹
path: logs/
#采用相对路径方式将日志文件输出到【log/myspringboot.log】
file: log/myspringboot.log
#采用绝对路径方式将日志文件输出到【/Users/wang/Downloads/myspringboot.log】
#file: /Users/wang/Downloads/myspringboot.log
二、Logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--application.yml定义的logging.path和logging.file属性-->
<File>${LOG_PATH}${LOG_FILE}</File>
<encoder>
<pattern>%date [%level] [%thread] %logger{60} [%file : %line] %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}daily/${LOG_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern>
<maxHistory>180</maxHistory> <!-- 保留180天 -->
</rollingPolicy>
</appender>
<!-- 时间滚动输出 敏感日志 -->
<appender name="file—sensitive" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<!--monitor日志文件名-->
<File>${LOG_PATH}sensetive/sensetive.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--monitor压缩日志文件名-->
<FileNamePattern>${LOG_PATH}sensetive/sensetive.%d{yyyy-MM-dd}.gz</FileNamePattern>
<MaxHistory>180</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>%date [%file : %line] %msg%n</pattern>
</encoder>
</appender>
<!--private Logger sensitiveLog = LoggerFactory.getLogger("sensitive");
-->
<!-- name=指定打印日志文件(Sfl4j使用的name) level=日志级别 additivity=是否想向上传递(继续输出到root) 先不加上 additivity=false 属性 -->
<logger name="sensitive" additivity="false">
<!-- 指定输出的appender name -->
<appender-ref ref="file—sensitive"/>
</logger>
<!--优先级还是Sfl4j的logging更高-->
<!--全局应用该日志配置-->
<root level="INFO">
<!--上面FILE appender会同步输出到控制台,-->
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</configuration>