Log4j的使用解析

Log4j的使用

Log4j支持两种配置文件格式:
【1】XML 格式文件
【2】Java 特性文件 log4j.properties(键 = 值)

其中使用log4j.properties文件作为配置文件是最常用方法。

1、log4j.properties文件的相关配置

1.1 rootLogger

基本配置语法为:log4j.rootLogger = level , appenderName ……

level 是日志记录的优先级,分为以下几种级别。

                           OFF
                           FATAL
                           TRACE
                           ERROR
                           WARN
                           INFO
                           DEBUG
                           ALL

ALL级别最低,用来开启所有日志记录,而OFF正好相反,它级别最高,用于关闭所有日志记录。

一般情况下,只有其中的四个级别会被使用到,即为ERROR、WARN、INFO、DEBUG,注意,以上四个选项是按级别由高到低排列的。当定义了某个级别后,等于及高于该定义级别的信息才会得到处理。

appenderName放在level后面,定义Appender的名字,用以指向Log信息的输出位置。一般可定义多个appenderName 。常用的appenderNamestdout,指定Log信息从控制台输出。可用的appenderName还有文件、GUI组件等。

 log4j.rootLogger = debug, stdout, F

上面的stdout指定Log输出到控制栏,F指定Log输出到F盘的文件(对于输出到文件,appenderName为用户自定义,但为了代码良好的可读性和延续性,所定义的名称应有较强的指向性)。

1.2 Appender

基本配置语法为:

log4j.appender.appenderName = Apender全称
log4j.appender.appenderName.键1 = 值1
……
log4j.appender.appenderName.键N = 值N

语法中appenderName与“1.1 rootLogger”里定义的必须一致。当出现多个appenderName时,应确保分开进行配置。如

log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.键1 = 值1
log4j.appender.stdout.键N = 值N

log4j.appender.F = org.apache.log4j.FileAppender 
log4j.appender.F.键1 = 值1
log4j.appender.F.键N = 值N

Log4j提供的Apender全称有以下几种:

org.apache.log4j.ConsoleAppender(输出到控制台)
org.apache.log4j.FileAppender(输出到文件)
org.apache.log4j.DailyRollingFileAppender(每日生成日志文件)
org.apache.log4j.RollingFileAppender(文件容量到达指定大小后生成新文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

RollingFileAppender选项可通过设置MaxFileSize属性限定单个文件的最大容量。容量单位可以是KB、MB、GB中的一个。
log4j.appender.R.MaxFileSize = 1 MB

RollingFileAppender选项还可通过设置MaxBackupIndex属性限定最大的生成文件数量。
log4j.appender.R.MaxBackupIndex = 2

例:

log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.F = org.apache.log4j.FileAppender 

1.3 Layout

基本语法为:

           log4j.appender.appenderName.layout = Layout 全称
           log4j.appender.appenderName.layout.键1 = 值1
                                     …
           log4j.appender.appenderName.layout.键N = 值N

常用的 Layout 全称有以下几种:

                  org.apache.log4j.HTMLLayout
                  org.apache.log4j.PatternLayout
                  org.apache.log4j.SimpleLayout
                  org.apache.log4j.xml.XMLLayout

例:
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

1.4 信息格式化

Log4j 允许采用与C语言中printf函数的打印格式类似的格式来对输出的日志信息进行格式化,通用形式为 log4j.appender.appenderName.layout.ConversionPattern = %letter(letter指代某个英文字母)。格式化信息可由多个%letter进行组合,组合的方式包含空格、方括号、尖括号等。常用的%letter形式如下。

        %m 输出代码中指定的消息
		%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
		%r 输出自应用启动到输出该log信息耗费的毫秒数
		%c 输出所属的类目,通常就是所在类的全名
		%t 输出产生该日志事件的线程名
		%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
		%d 输出日志时间点的日期或时间
		%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数
		%x 输出与生成日志记录事件的线程相关联的NDC(nested diagnostic contect,嵌套诊断上下文)

可在%d后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss.SSS}。注意,大写的MM指代月份,小写的mm指代分钟数,小写的ss指代秒钟数,大写的SSS指代毫秒数,应予以区分。

例:

log4j.appender.logFile.layout.ConversionPattern = [%-5p] %d(%r) --> [%t] %l: %m %x

1.5 log4j.properties示例

一个简单的log4j.properties示例如下。在实际开发环境中,可能需要配置的属性远比这个例子多得多,但对所有属性完全说明已经超出本博的范围,需要更多配置时,还应以官方API为准。
(本博发布时,Apache Log4j 2 已经可用。)

log4j.rootLogger = debug, stdout, F

log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d(%r) --> [%t] %l: %m %x

log4j.appender.F = org.apache.log4j.FileAppender 
log4j.appender.F.File = F://logTest/log.log(注意 linux 下和 windows 下文件分隔符的区别)
log4j.appender.F.Append = false
log4j.appender.F.layout = org.apache.log4j.PatternLayout
log4j.appender.F.layout.ConversionPattern = [%-5p] %d(%r) --> [%t] %l: %m %x

2、Log4j 在 Java 代码中的实际应用

2.1 获取配置文件

常见的配置方式有如下几种。

【1】使用缺省环境

import org.apache.log4j.BasicConfigurator;
BasicConfigurator.configure ():

【2】读取使用Java的特性文件编写的配置文件

import org.apache.log4j.PropertyConfigurator;
PropertyConfigurator.configure("log4j.properties");

【2】读取使用XML编写的配置文件

 import org.apache.log4j.xml.DOMConfigurator;
 DOMConfigurator.configure (“*.xml” )

2.2 getLogger

  static Logger logger = Logger.getLogger ( *.class)

*.class应与具体使用 Log4j 的类名相同。

2.3 输出到目的地

Logger.level( Object message ) ;  

上面的level为指代,应与log4j.properties中定义的 level 相同,如

Logger.debug( “Hello World” ) ;  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值