快捷搜索:

详细讲解Java中log4j的使用方法

1、Log4j是什么?

Log4j可以赞助调试(无意偶尔候debug是发挥不了作 用的)和阐发,要下载和懂得更具体的内容,照样造访其官方网站吧: http://jakarta.apache.org/log4j .

2、Log4j的观点

Log4j中有三个主要的组件,它们分手是 Logger、Appender和Layout,Log4j 容许开拓职员定义多个Logger,每个Logger拥有自己的名字,Logger之间经由过程名字来注解附属关系。有一个Logger称为Root,它永世存在,且不能经由过程名字检索或引用,可以经由过程Logger.getRootLogger()措施得到,其它Logger经由过程 Logger.getLogger(String name)措施。

Appender则是用来指明将所有的log信息寄放到什么地方,Log4j中支持多种appender,如 console、files、GUI components、NT Event Loggers等,一个Logger可以拥有多个Appender,也便是你既可以将Log信息输出到屏幕,同时存储到一个文件中。

Layout的感化是节制Log信息的输出要领,也便是款式化输出的信息。

Log4j中将要输出的Log信息定义了5种级别,依次为DEBUG、INFO、WARN、ERROR和FATAL,当输出时,只有级别高过设置设置设备摆设摆设中规定的 级其余信息才能真正的输出,这样就很方便的来设置设置设备摆设摆设不合环境下要输出的内容,而不必要变动代码,这点其实是方便啊。

3、Log4j的设置设置设备摆设摆设文件

虽然可以不用设置设置设备摆设摆设文件,而在法度榜样中实现设置设置设备摆设摆设,但这种措施在如今的系统开拓中显然是弗成取的,能采纳设置设置设备摆设摆设文件的地方必然必然要用设置设置设备摆设摆设文件。Log4j支持两 种款式的设置设置设备摆设摆设文件:XML款式和Java的property款式,本人更爱好后者,首先看一个简单的例子吧,如下:

log4j.rootLogger=debug, stdout, R

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

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

# Pattern to output the caller's file name and line number.

log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender

log4j.appender.R.File=example.log

log4j.appender.R.MaxFileSize= 100KB

# Keep one backup file

log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout

log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

首先,是设置root,款式为 log4j.rootLogger=[level],appenderName, ……,此中level便是设置必要输出信息的级别,后面是appender的输出的目的地,appenderName便是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。 设置设置设备摆设摆设日志信息输出目的地Appender,其语法为

log4j.appender.appenderName = fully.qualified.name.of.appender.class

log4j.appender.appenderName.option1 = value1

...

log4j.appender.appenderName.option = valueN

Log4j供给的appender有以下几种:

org.apache.log4j.ConsoleAppender(节制台)

org.apache.log4j.FileAppender(文件)

org.apache.log4j.DailyRollingFileAppender(天天孕育发生一个日志文件)

org.apache.log4j.RollingFileAppender(文件大年夜小到达指定尺寸的时刻孕育发生新文件)

org.apache.log4j.WriterAppender(将日志信息以流款式发送到随意率性指定的地方)

设置设置设备摆设摆设日志信息的款式(结构),其语法为:

log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class

log4j.appender.appenderName.layout.option1 = value1

....

log4j.appender.appenderName.layout.option = valueN

Log4j供给的layout有以下几种:

org.apache.log4j.HTMLLayout(以HTML表格形式结构),

org.apache.log4j.PatternLayout(可以机动地指定结构模式),

org.apache.log4j.SimpleLayout(包孕日志信息的级别和信息字符串),

org.apache.log4j.TTCCLayout(包孕日志孕育发生的光阴、线程、种别等等信息)

Log4J采纳类似C说话中的printf函数的打印款式款式化日志信息,打印参数如下: %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 输出日志事故的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)

4、Log4j在法度榜样中的应用

要在自己的法度榜样中应用Log4j,首先必要将commons- logging.jar和logging-log4j-1.2.9.jar导入到构建路径中。然后再将log4j.properties放到src根目录下。这样就可以在法度榜样中应用log4j了。在类中应用log4j,首先声明一个静态变量 Logger logger=Logger.getLog("classname");现在就可以应用了,用法如下:logger.debug("debug message")或者logger.info("info message"),看下面一个小例子:

import com.foo.Bar;

import org.apache.log4j.Logger;

import org.apache.log4j.PropertyConfigurator;

public class MyApp {

static Logger logger = Logger.getLogger(MyApp.class.getName());

public static void main(String[] args) {

// BasicConfigurator replaced with PropertyConfigurator.

PropertyConfigurator.configure(args[0]);

logger.info("Entering application.");

Bar bar = new Bar();

bar.doIt();

logger.info("Exiting application.");

}

}

您可能还会对下面的文章感兴趣: