Log4j简单配置实现把日志记录到文件 Java
  • 创建时间:2023-02-27 / 最新修改时间:2023-02-28 16:36:33
  • 4637
  • 0
转载请注明本文出处:http://limpire.cn/artifact/heap/web/211.html


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(将日志信息以流格式发送到任意指定的地方)

其中我们上面用到了 ConsoleAppenderDailyRollingFileAppender.

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 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。

完成目标

在上面的例子中,可以实现了日志显示到控制台和记录到文件中.

附官方配置说明: http://logging.apache.org/log4j/1.2/manual.html


请说:

昵称 Email

评论:

吃不起海鲜就买海鲜味的酱油

回车换行很爽,代表着一个段落或者一个小结的完成,打印出来之后就是一个可触摸的成品.围着这种意境,一起来技术性打酱油.

文章列表
分类目录
友情链接