Log4j简单配置实现把日志记录到文件 Java
- 创建时间:2023-02-27 / 最新修改时间:2023-02-28 16:36:33
- 4800
- 0
Log4j 简单配置实现把日志记录到文件
在SpringMVC开发中,日志系统是不可缺少的。 下面的所有说法是基于log4j 1.2x版本(注意不是log4j2)
配置文件(log4j.properties)
在resources目录下新建一个 log4j.properties文件,这个文件就是log4j的配置文件。它会被log4j自动加载。
把日志信息输出到控制台并记录在文件的简单配置.>
# 全局logger配置
log4j.rootLogger=DEBUG,stdout,outFile
# 输出到控制台的配置
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
# 配置输出到文件的配置
log4j.appender.outFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.outFile.File=/root/web/logs/log4j.log
log4j.appender.outFile.DataPattern='.'yyyy-MM-dd
log4j.appender.outFile.Append=true
log4j.appender.outFile.Threshold=DEBUG
log4j.appender.outFile.layout=org.apache.log4j.PatternLayout
log4j.appender.outFile.layout.ConversionPattern=%5p [%t] - %m%n
在上面的配置中大致可以分为2个部分。
A、logger配置
根logger指定了日志记录等级为DEBUG,然后分别应用了2个输出配置:stdout和outFile。 这两个名字都是来自于下面的输出配置所定义的名字。
B、输出配置
其中输出配置有配置了2中方式,一种是输出到控制台,一种是输出到文件。
输出的配置官方称为appender。
appender
它其实是一个接口,它的常用实现类有:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
其中我们上面用到了 ConsoleAppender
和DailyRollingFileAppender
.
ConsoleAppender
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
其中.stdout 可以是自己定义的名字, = 后面就是我们需要使用的appender.
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
这两句配置了 ConsoleAppender 显示日志的格式.具体后面会说
DailyRollingFileAppender
log4j.appender.outFile=org.apache.log4j.DailyRollingFileAppender
这句配置了DailyRollingFileAppender,并为它标识了一个名字叫 outFile.
然后后面就是对DailyRollingFileAppender的具体配置.
配置文件存储位置
log4j.appender.outFile.File=/root/web/logs/log4j.log
每天归档一次日志文件,并按此格式作为归档后的文件后缀名.
log4j.appender.outFile.DataPattern='.'yyyy-MM-dd
配置为追加方式写入
log4j.appender.outFile.Append=true
记录到该输出方式的等级是 debug
log4j.appender.outFile.Threshold=DEBUG
下面两行就是配置日志格式
log4j.appender.outFile.layout=org.apache.log4j.PatternLayout
log4j.appender.outFile.layout.ConversionPattern=%5p [%t] - %m%
Layout
每个输出方式都需要给他一个layout以告诉它如何格式化输出. Layout 是一个抽象类,他有下面几个实现类.
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串), org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
我们上面用到了 PatternLayout ,它支持一下格式化符/
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18 日 22 : 10 : 28 , 921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
完成目标
在上面的例子中,可以实现了日志显示到控制台和记录到文件中.