`
hxrs
  • 浏览: 26436 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

[转]Apache Log4j使用实例

阅读更多

1.Logger
通过Logger类的静态方法Logger.getRootLogger得到RootLogger。所有其他的loggers是通过静态方法Logger.getLogger来实例化并获取的。这个方法Logger.getLogger把所想要的logger的名字作为参数。 Logger类的一些其它基本方法在下面列出:
package org.apache.log4j;
public class Logger {
  // Creation and retrieval methods:
  public static Logger getRootLogger();
  public static Logger getLogger(String name);
 
  // printing methods:
  public void debug(Object message);
  public void info(Object message);
  public void warn(Object message);
  public void error(Object message);
  public void fatal(Object message);
 
  // generic printing method:
  public void log(Level l, Object message);
}
2. getLogger方法
以一样的参数名字调用getLogger方法,返回的reference总是指向完全相同的logger对象。例如,在这里:
Logger x = Logger.getLogger("wombat");
Logger y = Logger.getLogger("wombat");
xy指向完全相同的logger对象。
3.Log4j使用流程
1)根据配置文件初始化log4j
       log4j可以使用3种配置器来初始化:
BasicConfigurator,DOMConfigurator,PropertyConfigurator
这里用的是PropertyConfigurator。使用PropertyConfigurator适用于所有的系统。如下的语句。
PropertyConfigurator.configure("log4j.properties");
就以log4j.properties为配置文件初始化好了log4j环境。对于一般的java project 可以不使用上面的语句初始化log4jlog4j会自动在classpath下,找到配置文件并初始化。如果log4j不能自动初始化配置文件,那么就需要用上面的方法进行初始化。
       注意:初始化配置文件,最好只在系统启动的时候执行一次,如果执行多次,一是浪费资源,二就是对于老版本的log4j,使用DailyRollingFileAppender时,可能会出现问题。
 
2)导入org.apache.log4j.Logger;及相关包。
 
3)在需要使用log4j的地方获取Log实例。
private static Logger log = Logger.getLogger("MyCLASS.class");
 
4)使用Logger对象的debug,info,fatal...方法。
log.debug("it is the debug info");
4.Log4j使用示例
Test.java
import org.apache.log4j.Logger;
 
public class Test {
    static Logger log= Logger.getLogger(Test.class);
    public void log(){
       log.debug("Debug info.");
       log.info("Info info");
       log.warn("Warn info");
       log.error("Error info");
       log.fatal("Fatal info");
    }
    public static void main(String[] args) {
       Test test = new Test();
       test.log();
    }
}
 
Log4j.properties(具体配置属性定义见《Log4j配置说明》)
log4j.rootLogger=info, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
 
结果
INFO [main] (Test.java:16) - Info info
WARN [main] (Test.java:17) - Warn info
ERROR [main] (Test.java:18) - Error info
FATAL [main] (Test.java:19) - Fatal info
 
分析:
Test.java
Logger.getLogger(Test.class);”这里的“Test.class”事实上传进去的是Test这个类的完整路径(包名+类名),“test.Test”。这样如果存在“test”这个Log那么Test这个Log就继承它,否则就继承rootLogger
 
Log4j.properties
第一行,配置log4j.rootLogger。应为它是根,必须配置,否则别的Log无法继承。其他的Log可以配置也可以不配置。等号后面的第一个参数表示日志级别,可以填五个级别中的一种(Log4j默认把日志信息分为五个等级debug < info < warn < error < fatal),后面的参数都是让Log知道输出到哪里,如果你想让日志输出到两个地方就加两个输出参数,比如:
log4j.rootLogger=info, stdout
这里的info表示,该Log的日志级别为info,所有级别小于info的日志都不会被记录。比如使用这个配置文件的话,我刚开始举的那个类中:
log.debug("Debug info.");
这句话是不起作用的,因为debug的级别小于info。这样就很容易控制什么信息在调试的时候要显示,什么信息在发布的时候要去掉。这些都不用改代码。
      配置stdout,这个名字是随便取的,你可以叫它A
log4j.appender.A=org.apache.log4j.ConsoleAppender
那么上面的rootLogger的参数stdout也要改成A,其他用到的地方当然也要改。这里的关键不是名字,而是appender类型,比如这里的“ConsoleAppender”,指输出到Console。后面两行都是设置日志格式的。
5.Apache Log介绍集
6.参考资料
[1] Log4j官方手册
[2] Log4j最简入门
[url]http://afront.bokee.com/6157060.html[/url]

本文出自 “子 孑” 博客,请务必保留此出处http://zhangjunhd.blog.51cto.com/113473/21211

分享到:
评论

相关推荐

    apache log4j使用大全

    Apache Log4j 是一个广泛使用的开源日志框架,它为Java应用程序提供了强大的日志记录功能。Log4j 的主要优点在于它的灵活性和可配置性,允许开发者根据需要调整日志的输出目的地、格式以及级别。 **配置Log4j** ...

    Log4j使用实例

    ### Log4j 使用实例详解 #### 一、Log4j简介 Log4j 是一个开源的日志记录框架,由 Apache 软件基金会提供。它允许开发者根据需求配置日志等级,并灵活选择日志信息的输出方式。Log4j 的核心组件包括 Logger、...

    Apache Log4j2 远程代码执行漏洞检测工具

    Apache Log4j2 是一个广泛使用的Java日志框架,它为开发者提供了强大的日志记录功能。然而,在2021年12月初,一个严重的安全漏洞(CVE-2021-44228)被公开,这个漏洞被称为"Log4Shell",允许攻击者通过注入恶意的...

    apache-log4j-2.17.0-bin.tar.gz

    在Java代码中,你可以通过调用`org.apache.logging.log4j.LogManager.getLogger()`获取一个Logger实例,然后使用它来记录日志信息。 总的来说,Apache Log4j是一个强大且灵活的日志框架,对于开发人员来说,理解和...

    apache-log4j-2.16.0-bin.rar

    4. 强烈建议用户升级:由于Log4j2的广泛使用,官方强烈建议所有用户尽快将他们的Log4j2实例升级到2.16.0或更高版本,以确保系统的安全性。 在使用这个升级包时,你需要先解压缩"apache-log4j-2.16.0-bin"文件,然后...

    Pro Apache Log4j second edition

    根据提供的信息,我们可以深入探讨《Pro Apache Log4j 第二版》这本书的相关知识点。此书由Samudra Gupta编写,并于2005年出版,是关于Apache Log4j的一个专业指南。 ### 一、Apache Log4j简介 Apache Log4j是一个...

    apache log4j 日志系统实现原理.doc

    Apache Log4j 是一个广泛使用的Java日志框架,它的核心功能是记录应用程序中的事件和错误信息,便于跟踪问题、分析性能以及调试。Log4j 提供了一种灵活、高效的日志记录机制,允许开发者定制日志输出的方式、位置和...

    log4j使用实例.zip

    这个"log4j使用实例.zip"压缩包包含了关于如何在Java项目中配置和使用Log4j的示例代码,非常适合Java后端初学者学习。 首先,Log4j的核心组件包括Logger、Appender和Layout。Logger是日志信息的生产者,负责生成...

    Apache Log4j 1.2.15 Doc

    在使用过程中,开发者可以通过文档了解如何创建自定义的Appender、Filter和Layout,以及如何在代码中与Log4j交互,如获取Logger实例、调用不同级别的记录方法(如`logger.debug()`、`logger.info()`等)。...

    log4j多个简单实例

    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n ``` 在这个例子中,我们创建了一个名为`FILE`的Appender,它将日志...

    log4j 实例

    在代码中,通过导入`org.apache.log4j.Logger`,创建一个logger实例,并调用其方法来记录日志。如: ```java import org.apache.log4j.Logger; public class MyClass { private static final Logger logger = ...

    spring log4j 实例

    Spring框架是Java领域广泛使用的轻量级框架,而Log4j则是日志记录领域的经典工具,提供了丰富的日志配置和管理功能。本实例结合Spring和Log4j,将为你提供一个实用的日志解决方案。 首先,我们要理解Spring是如何...

    Apache的Log4J日志管理类库jar包

    在实际使用中,Log4J可以通过XML或properties文件进行配置,例如在`log4j.xml`中,你可以定义多个Appender,每个Appender有不同的输出目标和Layout,然后通过`&lt;logger&gt;`元素为不同的包或类设置日志级别。例如: ```...

    Log4j实例

    本实例将深入探讨Log4j的基本使用方法和配置。 一、Log4j的核心组件 1. Logger:日志记录器,它是日志输出的起点,可以根据不同的类或模块创建多个Logger实例,每个实例具有不同的日志级别。 2. Level:日志级别,...

    log4j使用教程(详解)

    Log4j是一款广泛使用的开源日志框架,由Apache软件基金会开发。本文将深入探讨Log4j的基本概念、配置与使用方法。 1. **什么是Log4j** Log4j是一个基于Java的日志记录工具,它提供了灵活的控制来记录日志信息,...

    apache-log4j-2.0-alpha1-bin.tar

    Apache Log4j 2.0 是一个广泛使用的Java日志框架,它提供了强大的日志记录功能,便于开发者在应用程序中追踪、记录和分析各种信息。这个压缩包"apache-log4j-2.0-alpha1-bin.tar"包含了Log4j 2.0的第一个alpha版本的...

    Log4j配置实例

    **Log4j配置实例** Log4j是一款广泛使用的Java日志框架,它为应用程序提供了灵活的日志记录功能。本文将深入探讨Log4j的配置及其实际应用,帮助开发者更好地理解和利用这一工具。 **1. Log4j概述** Log4j是由...

    apache-log4j-1.2.17

    Apache Log4j是Java平台上的一个著名日志...在使用"apache-log4j-1.2.17"压缩包时,开发者应确保理解日志框架的基本概念,正确配置和导入库,以实现高效、可控的日志管理,同时关注安全更新,避免因旧版本带来的风险。

    扫描log4j2 版本扫描log4j2 版本

    1. **识别系统中的Log4j2实例**:首先,需要识别系统中所有使用Log4j2的组件和应用程序,包括内部开发的项目以及第三方库。 2. **版本确认**:然后,通过查看项目配置文件(如`log4j2.xml`或`log4j2.json`)或依赖...

    log4j(实例代码+文档)

    Log4j是Java编程语言中的一个开源日志记录框架,由Apache软件基金会开发。它允许程序员以灵活的方式控制程序的日志输出,提供不同级别的日志记录,如DEBUG、INFO、WARN、ERROR和FATAL。通过实例代码和文档,学习者...

Global site tag (gtag.js) - Google Analytics