https://blog.csdn.net/weixin_40593587/article/details/86622009
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
昨天找了很多的logback的博客发现写的都是很旧的版本根本就用不了,今天自己测试了出来了;下面开始代码:
pom文件如下:
-
<?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>
-
<parent>
-
<groupId>org.springframework.boot
</groupId>
-
<artifactId>spring-boot-starter-parent
</artifactId>
-
<version>2.1.2.RELEASE
</version>
-
<relativePath/>
<!-- lookup parent from repository -->
-
</parent>
-
<groupId>com.example.phone
</groupId>
-
<artifactId>demo
</artifactId>
-
<version>0.0.1-SNAPSHOT
</version>
-
<name>demo
</name>
-
<description>Demo project for Spring Boot
</description>
-
-
<properties>
-
<java.version>1.8
</java.version>
-
</properties>
-
-
<dependencies>
-
<dependency>
-
<groupId>org.springframework.boot
</groupId>
-
<artifactId>spring-boot-starter-web
</artifactId>
-
</dependency>
-
<dependency>
-
<groupId>org.springframework.boot
</groupId>
-
<artifactId>spring-boot-starter-freemarker
</artifactId>
-
</dependency>
-
<dependency>
-
<groupId>org.mybatis.spring.boot
</groupId>
-
<artifactId>mybatis-spring-boot-starter
</artifactId>
-
<version>1.3.2
</version>
-
</dependency>
-
<dependency>
-
<groupId>com.alibaba
</groupId>
-
<artifactId>fastjson
</artifactId>
-
<version>1.2.46
</version>
-
</dependency>
-
-
<dependency>
-
<groupId>mysql
</groupId>
-
<artifactId>mysql-connector-java
</artifactId>
-
<scope>runtime
</scope>
-
</dependency>
-
<!--<dependency>-->
-
<!--<groupId>org.springframework.boot</groupId>-->
-
<!--<artifactId>spring-boot-starter-log4j2</artifactId>-->
-
<!--</dependency>这个并不需要-->
-
-
<dependency>
-
<groupId>org.springframework.boot
</groupId>
-
<artifactId>spring-boot-starter-test
</artifactId>
-
<scope>test
</scope>
-
</dependency>
-
</dependencies>
-
-
<build>
-
<plugins>
-
<plugin>
-
<groupId>org.springframework.boot
</groupId>
-
<artifactId>spring-boot-maven-plugin
</artifactId>
-
</plugin>
-
</plugins>
-
</build>
-
-
</project>
接下来我们需要在resources目录下建立一个xml文件,就叫做logback-spring.xml;为什么要起这个名字呢,因为起这个名字springboot2.1会自己去找该文件,里面内容如下:
-
<?xml version="1.0" encoding="UTF-8" ?>
-
<configuration>
-
-
<appender name="consoleApp" class="ch.qos.logback.core.ConsoleAppender">
-
<layout class="ch.qos.logback.classic.PatternLayout">
-
<pattern>
-
%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
-
</pattern>
-
</layout>
-
</appender>
-
-
<appender name="fileInfoApp" class="ch.qos.logback.core.rolling.RollingFileAppender">
-
<filter class="ch.qos.logback.classic.filter.LevelFilter">
-
<level>ERROR
</level>
-
<onMatch>DENY
</onMatch>
-
<onMismatch>ACCEPT
</onMismatch>
-
</filter>
-
<encoder>
-
<pattern>
-
%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
-
</pattern>
-
</encoder>
-
<!-- 滚动策略 -->
-
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-
<!-- 路径 -->
-
<fileNamePattern>app_log/log/app.info.%d.log
</fileNamePattern>
-
</rollingPolicy>
-
</appender>
-
-
<appender name="fileErrorApp" class="ch.qos.logback.core.rolling.RollingFileAppender">
-
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-
<level>ERROR
</level>
-
</filter>
-
<encoder>
-
<pattern>
-
%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
-
</pattern>
-
</encoder>
-
-
<!-- 设置滚动策略 -->
-
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-
<!-- 路径 -->
-
<fileNamePattern>app_log/log/app.err.%d.log
</fileNamePattern>
-
-
<!-- 控制保留的归档文件的最大数量,超出数量就删除旧文件,假设设置每个月滚动,
-
且<maxHistory> 是1,则只保存最近1个月的文件,删除之前的旧文件 -->
-
<MaxHistory>1
</MaxHistory>
-
-
</rollingPolicy>
-
</appender>
-
<root level="INFO">
-
<appender-ref ref="consoleApp"/>
-
<appender-ref ref="fileInfoApp"/>
-
<appender-ref ref="fileErrorApp"/>
-
</root>
-
</configuration>
这样子就可以了,这样我们在控制器就可以使用了:
import org.slf4j.LoggerFactory;、//注意导包的时候是导进去这个包;
private org.slf4j.Logger logger=LoggerFactory.getLogger(this.getClass());
调用接口如下:
-
@RequestMapping("/addInformation")
-
public Map<String, String> addUser(
@RequestBody Information information) {
-
-
System.
out.println(
"开始新增...");
-
System.
out.println(information);
-
System.
out.println(information.getImei());
-
System.
out.println(information.getKey());
-
boolean flag= informationService.addInformation(information);
-
// return flag;
-
logger.info(
" i am info");
-
logger.error(
"i am error");
-
logger.warn(
" i am warn");
-
logger.debug(
" i am debug");
-
return jsonCommon.SucessRequest();
接下来访问的时候就会显示
并会将info和error的信息打印到了我们指定的文件中,文件是自动生成的:我们在logback-spring.xml中配置了error的信息放在了
app_log/log/app.err.%d.log这个文件,info的信息会放在这个文件
app_log/log/app.info.%d.log
访问接口的时候就会自动生成这些目录和文件;目录如下所示:
运行访问成功。