通过Log4j,我们可以控制日志信息输送到目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器。我们可以控制每一条日志的输出格式。通过定义每一条日志信息的级别,能更加细致地控制日志的生成过程。
1 log4j、log4j2与@SLF4J
2015年9月,Apache宣布不再维护Log4j。建议所有相关项目升级到Log4j2。Log4j2是Apache开发的一个新的日志框架,改进了Log4j的缺点,同时也借鉴了LogBack,号称在性能上也完胜LogBack。
|
log4j |
log4j2 |
以.properties的文件为主。 |
||
核心JAR包 |
||
两者基本不同 |
SFL4J 全称是Simple Logging Facade for Java(Java的简单日志门面),是外观模式的典型应用。
不同的日志框架,需要引入不同的jar包,及使用不同的代码获取Logger。如果项目升级需要更换不同的框架,那么就需要修改所有的地方来获取新的Logger,这将产生巨大的工作量。
而SFL4J,运用门面外观模式,提供一个接口,将不同的日志框架的使用统一起来。
2 Log4J
级别标准是:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATA < OFF。
ALL |
WARN |
||
TRACE |
低于DEBUG。 |
ERROR |
|
DEBUG |
FATA |
||
INFO |
OFF |
配置文档主要有两个标签:<appender>用来配置日志输出目标的信息。<root>更节点来配置日志输出级别、输出目标等信息。
3 appender
log输出源,常用的输出源有:ConsoleAppender(控制台)、FileAppender(文件)、DailyRollingFileAppender(日常日志文件,FileAppender的子类)等。
这些输出源公有等配置选项有:
1、Threshold,指定日志信息的最低输出级别,默认DEBUG。
2、ImmediateFlush, 表示所有的消息都会被立即输出,默认true。
MaxFileSize,文件到达该大小时,将会自动产生一个新的日志文件,后缀可以是KB,MB或者GB。 MaxBackupIndex,可以产生的滚动文件最大数,假如设为2,则可产生app.log.1、app.log.2两个滚动文件和app.log。 |
表 常见输出源的相关配置
3.1 layout
配置日志信息的输出格式的布局。常见的布局有:HTMLLayout(以HTML表格形式布局)、PatternLayout(可以灵活指定布局模式)、SimpleLayout(包含日志信息的级别和信息字符串)、TTCCLayout(包含日志产生的时间、线程、类别等信息)。
%p |
日志信息的优先级,即DEBUG、INFO、WARN等。 |
%F |
|
%d |
%L |
代码中的行号。 |
|
%r |
%m |
||
%t |
产生该日志事件的线程名。 |
%n |
一个回车换行符。 |
%l |
%x |
||
%c |
产生日志信息所属的类目。 |
%% |
输出一个%字符。 |
%M |
|
|
例如:%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L – %m%n
输出:
2023-11-22 21:25:43 INFO Application:25 – info
2023-11-22 21:25:43 WARN Application:26 – warn
4 输出实战
log4j 日志可以输出到文件、邮件及数据库等。下面将大致介绍输出到邮件及文件到用法。
4.1 输出到邮件
</dependency>
bufferSize,默认单位是kb。是指日志超过该大小后才会发送邮件(当程序停止时也会发送邮件)。
4.2 输出到文件
图 DailyRollingFileAppender C产生的日志文件
如图所示,所产生的日志文件并不符合我们的期望,我们想得到的文件是: app.yyyy-MM-dd-HH-mm.log 这种格式的。这时需要我们自定义Appender。
我们需要先分析DailyRollingFileAppender这个类:
产生日志文件是在rollOver()这个方法发生的(这个方法官方注释是:将当前文件滚动到新文件)。
图 DailyRollingFileAppender 类的rollOver方法
因为rollOver方法我们没法重写,我们的Appender类不能直接继承DailyRollingFileAppender类。我们重写CustomDailyRollingFileAppender类,并继承FileAppender。这个类相对于DailyRollingFileAppender,只需要修改两处:
图 修改后生成的日志文件
原文地址:https://blog.csdn.net/qq_25308331/article/details/134565710
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_17509.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!