项目代码下载地址:https://github.com/snowlavenderlove/springbootLogger.git
1.通过官网https://start.spring.io/,创建项目springbootLogger,项目结构如图
2.编辑pom.xml
1)添加log4j依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
<version>1.5.2.RELEASE</version>
</dependency>
2)排除spring-boot-web中对于logging的引用,注:此部分需位置排在其他依赖引用之前
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<!-- 使用了log4j2,就要将spring-boot-starter-logging排除 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
3. 在resources下创建log4j2-spring.xml,编辑
<?xml version="1.0" encoding="UTF-8"?>
<!--
日志级别
trace: 是追踪,就是程序推进以下,你就可以写个trace输出,所以trace应该会特别多,不过没关系,我们可以设置最低日志级别不让他输出。
debug: 调试么,我一般就只用这个作为最低级别,trace压根不用。是在没办法就用eclipse或者idea的debug功能就好了么。
info: 输出一下你感兴趣的或者重要的信息,这个用的最多了。
warn: 有些信息不是错误信息,但是也要给程序员的一些提示,类似于eclipse中代码的验证不是有error 和warn(不算错误但是也请注意,比如以下depressed的方法)。
error: 错误信息。用的也比较多。
fatal: 级别比较高了。重大错误,这种级别你可以直接停止程序了,是不应该出现的错误么!不用那么紧张,其实就是一个程度的问题。
-->
<configuration>
<properties>
<!-- 文件输出格式 -->
<!--
%d{yyyy-MM-dd HH:mm:ss, SSS} : 日志生产时间
%p : 日志输出格式
%c : logger的名称
%m : 日志内容,即 logger.info("message")
%n : 换行符
%C : Java类名
%L : 日志输出所在行数
%M : 日志输出所在方法名
hostName : 本地机器名
hostAddress : 本地ip地址 -->
<property name="PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [%thread] %c [%L] -| %msg%n</property>
</properties>
<!--先定义所有的appender(输出器) -->
<appenders>
<!-- 输出到控制台 -->
<!--输出日志的格式,引用自定义模板 PATTERN -->
<Console
name="CONSOLE"
target="system_out">
<PatternLayout pattern="${PATTERN}" />
</Console>
</appenders>
<loggers>
<logger
name="com.xue"
level="debug" />
<root level="info">
<appenderref ref="CONSOLE" />
</root>
</loggers>
</configuration>
4.编辑application.properties
logging.config=classpath:log4j2-spring.xml
5.在controller中引用
创建controller包,创建LoggerController类
package com.xue.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class LoggerController {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@RequestMapping("/loggerss")
public String index(){
logger.info("hello,this is logger");
return "logger";
}
}
6.启动后可以看到控制台日志信息