服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

j2ee基础篇 对log4j使用方法的简单讲解

log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。

日志信息的优先级从高到低有error、warn、info、debug,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。

写配置文件

#配置文件settingfilename.ini

log4j.rootlogger=info, a1, a2

#setting for appender a1

log4j.appender.a1=org.apache.log4j.consoleappender

log4j.appender.a1.layout=org.apache.log4j.patternlayout

log4j.appender.a1.layout.conversionpattern=%-4r %-5p [%t] %37c %3x - %m%n

#setting for appender a2

log4j.appender. a2=org.apache.log4j.rollingfileappender

log4j.appender. a2.file=example.log

log4j.appender. a2.maxfilesize=100kb

log4j.appender. a2.maxbackupindex=1

log4j.appender. a2.layout=org.apache.log4j.patternlayout

log4j.appender. a2.layout.conversionpattern=%p %t %c - %m%n

注意:其中的log4j.appender必须都为小写

注释:

1.配置根logger,其语法为:

log4j.rootlogger = [ level ] , appendername, appendername, …

其中,level 是日志记录的优先级,分为off、fatal、error、warn、info、debug、all或者您定义的级别。log4j建议只使用四个级别,优先级从高到低分别是error、warn、info、debug。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。指定输出只显示比该级别以上的信息,所有比该级别低的信息都不会被显示。比如在这里定义了info级别,则应用程序中所有debug级别的日志信息将不被打印出来。

appendername就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。

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

3.配置日志信息的格式(布局),其语法为:

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(包含日志产生的时间、线程、类别等等信息)

4.当layout为patternlayout时,conversionpattern的格式有下面选项:

%r: 自程序开始后消耗的毫秒数

%t: 表示日志记录请求生成的线程

%p: 表示日志语句的优先级

%r: 与日志请求相关的类别名称

%c: 信息所在的类名

%m%n: 表示消息的内容

5.配置文件同样适用于服务器端和客户端。

代码中的使用

1. import中加入以下几行:

import org.apache.log4j.propertyconfigurator ;

import org.apache.log4j.logger ;

import org.apache.log4j.level ;

2. 定义logger变量

static logger logger = logger.getlogger(serverwithlog4j.class.getname ()) ;

3. 读配置文件

propertyconfigurator.configure (string settingfilename) ;

4. 显示日志信息

按显示级别显示日志信息

logger.debug(string log_info);

用于显示调试信息

logger.info (string log_info);

用于显示系统提示信息

logger.warn(string log_info);

用于显示警告或特殊提示

logger.error(string log_info);

用于显示错误信息,一般在异常中使用。例如:

catch(ioexception e) {

logger.error("ioexception!");

system.exit(0);

}

以上只是很简单的log4j包的一般使用,如果在使用中遇到问题,请查看包的api得到更详细的信息!

(t007)


扫描关注微信公众号