使用Log4J进行日志操作(4)

通用日志包把日志消息分为6种级别:FATAL(致命的)、ERROR(错误)、WARN(警告)、INFO(信息)、DEBUG(调试)和TRACE(细节)。其中FATAL级别最高,TRACE级别最低。通用日志包采用日志级别机制,可以灵活的控制输出的日志内容。

org.apache.commons.logging.Log接口代表日志器,它提供了一组输出日志的方法:

fatal(Object message): 输出FATAL级别的日志消息。

error(Object message): 输出ERROR级别的日志消息。

 ……

trace(Object message): 输出TRACE级别的日志消息。

对于以上输出日志的方法,只有当它输出日志的级别大于或等于为日志其配置的日志级别时,这个方法才会被真正执行。例如,如果日志器的日志级别为WARN,那么在程序中,它的fatal()、error()和warn()方法会被执行,而info()、debug()和trace()方法不会被执行。

Log接口还提供了一组判断是否允许输出特定级别的日志消息的方法:

isFatalEnabled()

isErrorEnabled()

……

isTraceEnabled()

在程序输出某种级别的日志消息之前,提倡先调用以上方法来判断该级别的日志是否允许输出,这有助于提高应用的性能。例如以下代码先把日志消息添加到StringBuffer中,最后在调用日志器的debug()方法输出日志:

StringBuffer buf = new StringBuffer();

buf.append(“Login Successsul - ”);

buf.append(“Name:”);

buf.append(username);

log.debug(buf.toString());

对于以上代码,如果日志器实际上不允许输出DEBUG级别的日志,那么执行日志器的debug()方法不会输出任何消息,此时向StringBuffer中添加消息的一大串操做都将是多余的。为了提高性能,可以合理的使用isDebugEnabled()方法,避免应用执行多余的操作:

if(log.isDebugEnabled){

StringBuffer buf = new StringBuffer();

buf.append(“Login Successsul - ”);

buf.append(“Name:”);

buf.append(username);

log.debug(bug.toString());

}

(二)LogFactory接口

org.apache.commons.logging.LogFactory接口提供了获得日志器实例的两个静态方法:

public static Log getLog(String name)throws LogConfigurationException;

public static Log getLog(Class class) throws LogConfigurationException;

第一个getLog()方法以name参数作为日志器的名字;第二个getLog()方法以class参数指定的类的名字作为日志器的名字,以下是第二个getLog()方法的一种实现方式:

public static Log getLog(Class class) throws LogConfigurationException{

getLog(class.getName);    //call getLog(String name)

}

小结

Log4J主要由3大组件构成:Logger、Appender和Layout。Logger控制日志信息的输出;Appender决定日志信息的输出目的地;Layout决定日志信息的输出格式。Log4J允许用户在配置文件中灵活地配置这些组件。在程序中使用Log4J非常方便,只要先取得日志记录器,然后读取配置文件并配置Log4J环境,接下来就可以在程序中任何需要输出日志的地方,调用Logger类的适当方法来生成日志。

更多Log4j相关教程见以下内容

Log4j配置详解

Log4j2日志配置 

Log4J的Appenders配置 

Spring的Log4J配置

Log4j学习笔记(1)_Log4j 基础&配置项解析

Log4j学习笔记(2)_Log4j配置示例&Spring集成Log4j

Log4j容器初始化探究 

Log4j 的详细介绍请点这里
Log4j 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b987b0425157d9469ec45684814beb9a.html