社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
SLF4J的全称是Simple Logging Facade for Java,即简单日志门面。SLF4J并不是具体的日志框架,而是作为一个简单门面服务于各类日志框架,如java.util.logging, logback和log4j。SLF4J提供了统一的记录日志的接口,对不同日志系统的具体实现进行了抽象化,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过绑定具体的日志系统来实现。
使用SLF4J的好处在于,你只需要按统一的方式写记录日志的代码,而无需关心日志是通过哪个日志系统,以什么风格输出的。因为它们取决于部署项目时绑定的日志系统
在日志管理的pom依赖中,我们不需要其他依赖了,我们只要lombok依赖和核心一来就行了,因为springboot依赖带有日志管理的依赖,具体依赖如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.gg</groupId>
<artifactId>SpringBoot</artifactId>
<version>1.0-SNAPSHOT</version>
<!--父依赖-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!--编码格式-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--核心依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- 引入security权限依赖模块 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!--Swagger2-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.5.0</version>
</dependency>
<!--Swagger-ui-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.5.0</version>
</dependency>
<!-- Spring Boot JPA 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- 引入Gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
<!-- 引入web依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 引入test测试依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Junit 单元测试 依赖 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<!--引入jdbc链接依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- 引入mysql链接依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 引入Lombock依赖 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--阿里fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.46</version>
</dependency>
<!-- Spring Boot devtools 热部署 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!--quartz定时任务-->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.0</version>
</dependency>
<!--Excel导入导出-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>RELEASE</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- SpringBoot 项目打jar包的Maven插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<!-- SpringBoot项目打包jar名称 -->
<finalName>SpringBoot-one</finalName>
</build>
</project>
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!--配置控制台的输出-->
<appender name="consolelog" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<!--日志格式-->
<pattern> %d- %msg%n</pattern>
</layout>
</appender>
<!--文件输出info日志的配置-->
<appender name="fileInfolog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--为了在info中不出现error的日志,因为error的日志级别最高,所以我们不用普通的过滤器,而是在权限过滤器下匹配相应级别的日志,进行筛选-->
<!--筛选的级别有三种 DENY ACCEPT NEUTRAL 禁止,接受和中立 具体看类 filterReply-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!--设置权限-->
<level>ERROR</level>
<!--命中-->
<onMatch>DENY</onMatch>
<!--未命中-->
<onMismatch>ACCEPT</onMismatch>
</filter>
<encoder>
<pattern>
%d - %msg%n
</pattern>
</encoder>
<!--滚动策略 按照时间来滚动 每日创建一个日志文件-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>D:/log/fileInfolog%d.log</fileNamePattern>
</rollingPolicy>
</appender>
<!--文件输出error日志的配置-->
<appender name="fileErrorlog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--为了在error日志中没有info日志,所以我们设置一个过滤器 记住是ThresholdFilter,不是levelFilter-->
<filter class = "ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<encoder>
<pattern>
%d - %msg%n
</pattern>
</encoder>
<!--滚动策略 按照时间来滚动-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>D:/log/fileErrorlog%d.log</fileNamePattern>
</rollingPolicy>
</appender>
<root level="INFO">
<appender-ref ref="consolelog"/>
<appender-ref ref="fileInfolog"/>
<appender-ref ref="fileErrorlog"/>
</root>
</configuration>
在这里我把日志在控制台输出了以外,还在e盘进行了记录
##日志
logging:
pattern:
console: “%d - %msg%n”
path: e:/
file: e:/sell.log
关于日志这边大家有更好的建议方案,欢迎提出来。因为博主在整理日志的时候,也是边搞边查资料搞出来的,欢迎大家的建议
更多参考精彩博文请看这里:倾宸的博客
喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!***
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!