浏览 3783 次
锁定老帖子 主题:Log4j快速入门
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-01-22
这几天开发的项目需要用到Log4j,以前没有接触过Log4j,因此需要快速掌握并应用此包. 本文内容:
Log4j的介绍What? Log4j是Apache的一个开放源代码的一个日志操作包(http://jakarta.apache.org/log4j)。Log4j可以帮助调试和分析。 概念? Log4j有三个主要的组件,它们分别是:
Logger,Appender,Layout三大组件的关系是:一个Logger可以有多个Appender(可以同时输出到多个设备上),每个Appender对应一种Layout(示例见下图)。 Logger组件 有一个超类–log4j.rootLogger.它永远存在,且不能够通过名字引用.不过可以通过Logger类中的getRootLogger()获得.Logger组件的继承关系:
Appender组件 决定将日志信息输出到什么地方。支持以下目的地:
Layout组件 Layout组件决定日志输出格式,有以下几种类型:
日志级别 一共有五种,级别由高到低依次是:fatal、error、warn、info、debug .获得Logger实例后,可调用相应的日志级别输出日志信息,当级别大于或等于Logger组件配置的日志级别时才调用. Log4j应用Log4j的配置 Log4j可以在程序中实现配置,但在配置文件中配置似乎更又维护性.Log4jLog4j支持两种格式的配置文件:XML格式和Java的property格式.本文以后者举例. ## LOGGERS ## #配置 root logger,其语法为: #log4j.rootLogger = [ level ] , appenderName, appenderName, … log4j.rootLogger=INFO,console #定义一个名为myLogger的Logger #日志级别为WARN,则意味着只有WARN,ERROR,FATAL被输出,DEBUG,INFO将被屏蔽掉. log4j.logger.myLogger=WARN #定义一个继承myLogger的Logger, log4j.logger.myLogger.mySonLogger=,file ## APPENDERS ## #定义一个名为console的appender, which is set to be a ConsoleAppender log4j.appender.console=org.apache.log4j.ConsoleAppender # 定义一个名为file的appender, which is set to be a FileAppender log4j.appender.file=org.apache.log4j.FileAppender #日志输出的文件 log4j.appender.file.File=htmllog.html ## LAYOUTS ## # 设置console Appender的Layout为SimpleLayout log4j.appender.console.layout=org.apache.log4j.SimpleLayout # 设置file Appender的Layout为HTMLLayout log4j.appender.file.layout=org.apache.log4j.HTMLLayout #log4j.appender.file.layout=org.apache.log4j.PatternLayout #log4j.appender.file.layout.ConversionPattern=%t%p-%m%n 更多的Appender和Layout请查看Log4j的API 在程序中使用Log4j 首先将Log4j的jar包(log4j-1.2.15.jar)导入到工程中,然后再写Log4j的配置文件(log4j.properties) ,在程序中使用API.举例: import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class Test { public static void main(String[] args) { // Load the proerties using the PropertyConfigurator PropertyConfigurator.configure("config/log4j.properties"); // Get an instance of the myLogger Logger myLogger = Logger.getLogger("myLogger"); // Get an instance of the childLogger Logger mySonLogger = Logger.getLogger("myLogger.mySonLogger"); // Log Messages using the Parent Logger myLogger.debug("This is a log message from the " + myLogger.getName()); myLogger.info("This is a log message from the " + myLogger.getName()); myLogger.warn("This is a log message from the " + myLogger.getName()); myLogger.error("This is a log message from the " + myLogger.getName()); myLogger.fatal("This is a log message from the " + myLogger.getName()); mySonLogger.debug("This is a log message from the " + mySonLogger.getName()); mySonLogger.info("This is a log message from the " + mySonLogger.getName()); mySonLogger.warn("This is a log message from the " + mySonLogger.getName()); mySonLogger.error("This is a log message from the " + mySonLogger.getName()); mySonLogger.fatal("This is a log message from the " + mySonLogger.getName()); } } Log4j与其他框架有空再补充…
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |