背景
日志是项目中不能缺少的模块,目前项目中比较常用的是Log4j,这个日志是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输出到控制台、文件甚至是套接口服务器等等。通过配置文件可以控制每一条日志的输出格式,定义每一条日志信息的级别,更加细致地控制日志的生成过程。下面通过访问的方式来集成log4j。从maven依赖包,配置文件和项目中实际使用样例三个方面来记录。
maven
第一步:我这里使用的是springboot,因为springboot自带log,咱们要使用log4j,先屏蔽了原来的log
<exclusions>
<!--不使用start自带的log-->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
第二步:加入log4j的依赖,一个接口,一个实现两个包
<!-- log 接口层 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<!-- log 实现 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
<!-- <scope>test</scope> -->
</dependency>
配置文件
配置文件放置位置,项目Application所在module中的resources目录下。配置文件名称为:log4j.properties
配置内容:
# 日志配置文件
log4j.rootLogger=CONSOLE,FILE
log4j.addivity.org.apache=true
# 应用于控制台
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=UTF-8
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
# 控制台展示数据格式
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
# 应用于文件
log4j.appender.FILE=org.apache.log4j.FileAppender
# 日志保存位置
log4j.appender.FILE.File=/你的日志目录/app.log
log4j.appender.FILE.Append=false
log4j.appender.FILE.Encoding=UTF-8
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
# 控制台展示数据格式
log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
# 每天新建日志
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=/你的日志目录/app.day.log
log4j.appender.A1.Encoding=UTF-8
log4j.appender.A1.Threshold=DEBUG
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
# 控制台展示数据格式
log4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L : %m%n
其中,需要根据自己的情况配置的:
1.日志保存位置和日志文件名称
2.日志的记录内容格式
3.日志输出等级:debug还是info
源码中使用
我这里是springboot的rest api项目中的controller中使用的实例
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
@ApiIgnore
@RestController
public class HelloController {
// 日志对象
final static Logger logger = LoggerFactory.getLogger(HelloController.class);
@GetMapping("/hello")
public Object hello() {
//使用日志
logger.debug("debug:hello~");
logger.error("error:hello~");
logger.warn("warn:hello~");
logger.info("info:hello~");
return "hello world~";
}
}
网友评论