初识log4j

log4j有三个主要的概念:记录员loggers、录入笔appenders和录入风格layouts。

记录员是分级别、继承式的。每个记录员有三个基本特征:

1. 名称的继承
除总记录员之外的所有记录员都要有名称。名称往往是全路径类名,例如com.foo.Bar。名称的继承是指记录员之间有继承关系,com.foo是com.foo.Bar的父亲,com是com.foo.Bar的爷爷。每个记录员的名称唯一,并且能够通过getLogger方法直接被获取。每个记录员在第一次被获取时被实例化,总记录员除外,它始终都存在,所有没父亲的记录员都继承自它。

每个记录员都有记录级别,默认系统给出的级别,分六档,从低到高依次是跟踪TRACE、调试DEBUG、记录INFO、警告WARN、错误ERROR、灾难FATAL。使用者被允许自定义新的级别,但不被建议,通常这六种也足够用了。

2. 级别的继承
记录员的级别有两种方式取得,一种是使用者用setLevel直接指定,另一种是从祖先那里继承。直接指定就不必说了,继承也很简单,自己如果没被指定级别,那就继承父亲的级别,如果父亲还没有,那就继续向上,直到有祖先被指定级别。总记录员必须被指定级别,因为没有父亲了。

3. 赢得纪录权利的规则
记录员的每一次记录信息都有级别检查,记录信息的级别由记录方法决定,比如,默认的六个方法trace, debug, info, warn, error, fatal。记录员用比自己级别低的记录方法,不会有信息输出,只有用了高级别(大于等于自身级别)的记录方法才会输出。还有个一般性的记录方法log,可以通过指定级别,随意变身默认的六种方法。所以记录员赢得记录的权利就是调用比自身级别高的记录方法。

录入笔
记录员只有方法没有工具也不知道把信息记到哪儿,录入笔就是这个工具。每个记录员可以有多个记录笔,不同记录笔记录到不同的平台,可以是控制台、文件、界面的某个控件、远程服务器的套接字端口、Java消息服务、Windows NT的日志系统、远程UNIX服务器的Syslog日志系统。

录入笔也是可继承的,祖先的录入笔会继承到后代中。后代的记录员可以用继承来的录入笔和自身的录入笔同时将信息输出到多个数据源。

记录员的录入笔默认是可叠加的,可叠加是指的继承上的可叠加。如果禁止录入笔的叠加性,即禁掉了当前录入员继承祖先的录入笔,自身的录入笔还是会被后代继承的,被继承的录入笔也是可以同时使用的。

录入风格
录入风格顾名思义指的是记录信息的格式,每个录入笔可以指定一种专门的录入格式

发布人

jeremy1990

现居北京,就职于亚马逊中国,软件工程师。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注