您的位置:首页 > 其它

跟王老师学异常(九):Log4j基本使用方法

2016-05-04 16:07 477 查看
Log4j基本使用方法

主讲人:王少华 QQ群号:483773664

学习目标

掌握Log4j在java项目中使用

理解log4j.properties各个配置的含义

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

一、输出级别

(一)输出级别

1
log4j.rootLogger=debug, stdout,logfile
其中debug指的日志记录器(Logger)的输出级别。

(二)、各级别的含义

fatal:指出严重的错误事件,将会导致应用程序的退出

error:指出虽然发生错误事件,但仍然不影响系统的继续运行

warm:表明会出现潜在错误的情形

info:在粗粒度级别上指明消息,强调应用程序的运行过程

debug:指出细粒度信息事件,对调试应用程序非常有帮助。

各应用程序的优先级如下

fatal>error>warn>info>debug
这些优先级的含义是:日志记录器(Logger)将只输出那些级别高于或等于它的信息。例如,级别为debug,将输出fatal、error、warn、info、debug级别的日志信息;而级别为error,将只输出fatal、error级别的日志信息。
二、日志输出目的地Appender

(一)日志输出的目的地

1
log4j.rootLogger=debug, stdout,logfile
其中,stdout、logfile指的是日志输出的目的地的名称

(二)目的地的类型

Log4j允许日志输出到多个目的地,一个输出目的地被称为一个Appender.最常用的有二种:

ConsoleAppender:输出日志到控制台,通过Target属性配置输出到System.err或System.out.默认的目标是System.out

FileAppender:输出日志事件到一个文件。通过File属性配置文件的路径及名称

除了这二种以外,Log4j还提供了以下三种输出目的地

org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),

org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),

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

三、日志布局类型Layout

(一)日志布局类型

Appender必须使用一个与之相关联的布局类型Layout,用来指定它的输出样式

1
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout

(二)Layout的样式

log4j中最常用的Layout有以下3种

HTMLLayout:格式化日志输出为HTML表格

SimpleLayout:以一种非常简单的方式格式化日志输出,它输出级别Level,然后跟着一个破折号“-----”,最后是日志消息

PatternLayout:根据指定转换模式格式化日志输出,从而支持丰富多样的输出格式。需要配置layout.ConversionPattern属性,若没有配置该属性,则使用默认的转换模式。

除了以上3种常用的,还有以下一种
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

四、转换模式ConversionPattern

(一)、实例

1
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss}%l %F %p %m%n

(二)参数说明

对于PatternLayout,需要配置layout.ConversionPattern属性,常用的配置参数及含义如下:
%d:用来设置输出日志的日期和时间,默认格式为ISO8601。也可以在其后指定格式,比如%d{yyyy-MM-dd HH:mm:ss},输出格式类似于2016-04-25 09:10:08

%m:用来输出代码中指定的消息

%n:用来输出回车换行符

%l:用来输出日志事件的发生位置,包抱类名、发生的线程,以及在代码中的行数。如:chapter06_08.Test.main(Test.java:26)

%p:用来输出优先级,即debug、info、warn、error、fatal等

%F:用来输出文件名

%M:用来输出方法名

1
2016
-
04
-
25
13
:
43
:34chapter06_08.Test.main(Test.java:
26
) Test.java ERROR / by zero

五、在代码中使用Log4j

(一)得到记录器

使用Log4j的第一步就是获取日志记录器,它负责控制日志信息。其语法如下:

1
public
static
Logger getLogger( String name)
Name一般取本类的名字

1
private
static
Logger logger = Logger.getLogger(Test.
class
.getName());

(二)插入日志信息

Logger对象提供了一系列方法来输出不同级别的日志信息

public void debug(Object msg)

public void debug(Object msg,Throwable t)

public void info(Object msg)

public void info(Object msg,Throwable t)

public void warn(Object msg)

public void warn(Object msg,Throwable t)

public void error(Object msg)

public void error(Object msg,Throwable t)

public void fatal(Object msg)

public void fatal(Object msg,Throwable t)

六、更多

关于Log4j更加详细的介绍可以去官网查看文档,也可以去我的博客。

我的博客:http://teacherwang.blog.51cto.com/10946447/1767469
log4j文档:http://logging.apache.org/log4j/1.2/manual.html

来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: