1 SLF4J日志
SLF4J,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统。
SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。
Logging API实现既可以选择直接实现SLF4J接的loging APIs如: NLOG4J、SimpleLogger。也可以通过SLF4J提供的API实现来开发相应的适配器如Log4jLoggerAdapter、JDK14LoggerAdapter。
2 logback.xml(配置文件)
-
<?xml version="1.0" encoding="UTF-8"?>
-
<configuration>
-
<!-- 日志存放路径 -->
-
<!-- Linux系统日志存放路径 -->
-
<!--<property name="log.path" value="/home/logs" />-->
-
<!-- windows系统日志存放路径 -->
-
<property name="log.path" value="d:/logs" />
-
<!-- 日志输出格式 -->
-
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
-
-
<!-- 控制台输出 -->
-
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
-
<encoder>
-
<pattern>${log.pattern}
</pattern>
-
</encoder>
-
</appender>
-
-
<!-- 系统日志输出 -->
-
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
-
<file>${log.path}/sys-info.log
</file>
-
<!-- 循环政策:基于时间创建日志文件 -->
-
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-
<!-- 日志文件名格式 -->
-
<fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log
</fileNamePattern>
-
<!-- 日志最大的历史 60天 -->
-
<maxHistory>60
</maxHistory>
-
</rollingPolicy>
-
<encoder>
-
<pattern>${log.pattern}
</pattern>
-
</encoder>
-
<filter class="ch.qos.logback.classic.filter.LevelFilter">
-
<!-- 过滤的级别 -->
-
<level>INFO
</level>
-
<!-- 匹配时的操作:接收(记录) -->
-
<onMatch>ACCEPT
</onMatch>
-
<!-- 不匹配时的操作:拒绝(不记录) -->
-
<onMismatch>DENY
</onMismatch>
-
</filter>
-
</appender>
-
-
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
-
<file>${log.path}/sys-error.log
</file>
-
<!-- 循环政策:基于时间创建日志文件 -->
-
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-
<!-- 日志文件名格式 -->
-
<fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log
</fileNamePattern>
-
<!-- 日志最大的历史 60天 -->
-
<maxHistory>60
</maxHistory>
-
</rollingPolicy>
-
<encoder>
-
<pattern>${log.pattern}
</pattern>
-
</encoder>
-
<filter class="ch.qos.logback.classic.filter.LevelFilter">
-
<!-- 过滤的级别 -->
-
<level>ERROR
</level>
-
<!-- 匹配时的操作:接收(记录) -->
-
<onMatch>ACCEPT
</onMatch>
-
<!-- 不匹配时的操作:拒绝(不记录) -->
-
<onMismatch>DENY
</onMismatch>
-
</filter>
-
</appender>
-
-
<!-- 用户访问日志输出 -->
-
<appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
-
<file>${log.path}/sys-user.log
</file>
-
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-
<!-- 按天回滚 daily -->
-
<fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log
</fileNamePattern>
-
<!-- 日志最大的历史 60天 -->
-
<maxHistory>60
</maxHistory>
-
</rollingPolicy>
-
<encoder>
-
<pattern>${log.pattern}
</pattern>
-
</encoder>
-
</appender>
-
-
<!-- 系统模块日志级别控制 -->
-
<logger name="com" level="info" />
-
<!-- Spring日志级别控制 -->
-
<logger name="org.springframework" level="warn" />
-
-
<root level="info">
-
<appender-ref ref="console" />
-
</root>
-
-
<!--系统操作日志-->
-
<root level="info">
-
<appender-ref ref="file_info" />
-
<appender-ref ref="file_error" />
-
</root>
-
-
<!--系统用户操作日志-->
-
<logger name="sys-user" level="info">
-
<appender-ref ref="sys-user"/>
-
</logger>
-
</configuration>
3 application.properties
-
## 日志配置
-
logging.config=src/main/resources/logback.xml
-
logging.level.com=trace
4 打印日志
-
package com;
-
-
import org.slf4j.Logger;
-
import org.slf4j.LoggerFactory;
-
import org.springframework.boot.SpringApplication;
-
import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-
@SpringBootApplication
-
public
class TestConfigApplication {
-
private
static
final Logger logger = LoggerFactory.getLogger(TestConfigApplication.class);
-
public static void main(String[] args) {
-
SpringApplication.run(TestConfigApplication.class, args);
-
logger.error("这是error信息");
-
logger.warn("这是warn信息");
-
logger.info("这是info信息");
-
logger.debug("这是debug信息");
-
}
-
-
}
5 调试结果
5.1 控制台打印结果
5.2 日志文件
找到在logback.xml配置的日志文件路径,查看日志文件。