`

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" );
x y 指向完全相同的 logger 对象。
3.Log4j 使用流程
1 )根据配置文件初始化 log4j
       log4j 可以使用 3 种配置器来初始化:
BasicConfigurator,DOMConfigurator,PropertyConfigurator
这里用的是 PropertyConfigurator 。使用 PropertyConfigurator 适用于所有的系统。如下的语句。
PropertyConfigurator.configure( "log4j.properties" );
就以 log4j.properties 为配置文件初始化好了 log4j 环境。对于一般的 java project 可以不使用上面的语句初始化 log4j log4j 会自动在 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 。 后面两行都是设置日志格式的。
分享到:
评论

相关推荐

    apache log4j使用大全

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

    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是一个强大且灵活的日志框架,对于开发人员来说,理解和...

    Pro Apache Log4j second edition

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

    apache-log4j-2.16.0-bin.rar

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

    Log4j使用实例

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

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

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

    Apache Log4j 1.2.15 Doc

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

    Apache的Log4J日志管理类库jar包

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

    Apache Commons Logging整合Log4j简单例子

    这篇博客"Apache Commons Logging整合Log4j简单例子"显然会引导我们如何将ACL与Log4j集成,以便在我们的Java应用中使用Log4j作为日志记录器。Log4j是一款功能强大的日志框架,提供灵活的日志配置和多种输出选项,如...

    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版本的...

    apache-log4j-1.2.17

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

    log4j使用实例.zip

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

    log4j使用例子和文档

    Log4j是Apache组织提供的一款广泛使用的Java日志框架,它具有高效、灵活、可配置等特点。本篇文章将深入探讨Log4j的使用,并通过实例进行讲解。 ### 1. Log4j的基本概念 - **Logger**: 日志器是Log4j的核心组件,...

    扫描log4j2 版本扫描log4j2 版本

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

    log4j日志管理安装使用文档

    Apache Log4j 是一个广泛使用的开源日志框架,它为Java应用程序提供了一种灵活且高效的日志记录解决方案。Log4j 支持多种输出方式,包括控制台、文件、数据库等,并允许自定义日志级别和格式,以满足不同开发需求。 ...

    log4j-api-2.17.1.jar和log4j-core-2.17.1.jar

    这些接口包括最基本的`org.apache.logging.log4j.Logger`,它是所有日志记录的起点,以及`org.apache.logging.log4j.LogManager`,它负责管理日志配置和日志器实例。API库的主要目标是与实现层解耦,允许开发者在不...

    apache-log4j-2.3 jar包

    Apache Log4j 2.3 是一个广泛使用的Java日志框架,它提供了强大的日志记录功能,便于开发者在应用程序中追踪、控制和调试信息。这个jar包是专门为Java开发人员设计的,允许他们灵活地控制日志信息的输出格式、级别和...

    log4j多个简单实例

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

Global site tag (gtag.js) - Google Analytics