`
hxrs
  • 浏览: 25773 次
  • 性别: 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

分享到:
评论

相关推荐

    log4j源码实例及jar 包下载

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...

    Log4j日志管理系统简单使用说明

     获得了Logger的实例之后,接下来将配置Log4j使用环境:  语法表示:  BasicConfigurator.configure():自动快速地使用缺省Log4j环境。  PropertyConfigurator.configure(String configFilename):读取使用Java...

    最详细的Log4j使用教程

    最详细的Log4j使用教程 日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。在apache网站:jakarta.apache.org/log4j 可以免费下载到Log4j最新版本的软件包。 一...

    Apache Commons-logging使用实例

    Jakarta Commons Logging (JCL)提供的是一个日志(Log)接口(interface),同时兼顾轻量级和不依赖于具体的日志实现工具。

    vs2015环境apache-log4cxx-0.10.0工程.zip

    配有log测试程序,去除无用文件的精简版,可应用于windows下的项目的日志功能

    Linux tomcat下catalina.out日志文件分割

    Linux tomcat下catalina.out日志文件分割...2.拷贝log4j.jar,lo4j.properties到./lib目录下; 3.删除./conf/logging.properties 4.重启 log4j配置样本 实例代码: log4j.rootLogger=INFO,CATALINA log4j.logger.com.dan

    log4cplus 源码(C++编写的开源的日志系统)

    log4cplus是C++编写的开源的日志系统,前身是java编写的log4j系统.受Apache Software License保护。作者是Tad E. Smith。log4cplus具有线程安全、灵活、以及多粒度控制的特点,通过将信息划分优先级使其可以面向程序...

    Log4j定时打印日志及添加模块名配置的Java代码实例

    主要介绍了Log4j定时打印日志及添加模块名配置的Java代码实例,Log4j是Apache的一个开源Java日志项目,需要的朋友可以参考下

    java代码实例-日志规范史上最全java日志攻略(附教程)

    Log4J "Log4J的入门使用 Log4j的配置 输出日志文件 将日志信息存入数据库" Apache JCL "common log介绍 log中的接口" SLF4J "日志门面的使用 日志的绑定 日志的桥接 日志门面的原理" log-back "log-back的日志框架 ...

    应用Log4net库记录日志信息的C#实例程序Ky_Log4N.rar

    1. 首先从apache网站下载log4net, http://logging.apache.org/log4net/download_log4net.cgi 。2、创建一个新的log4net的配置文件Log4Net.config。3、新增一个LogHelper。4、初始化log4net。5、在需要写日志的地方...

    dynatrace-log4j2-appender:Dynatrace通用日志提取Log4j2 Appender

    Dynatrace通用日志提取Log4j2 Appender Log4j2 Appender将Java应用程序与Dynatrace通用日志提取功能集成在一起。... compileOnly group : ' org.apache.logging.log4j ' , name : ' log4j-api ' , version : ' 2.14

    javalog4j源码-SLF4J-Migrator:这是一个Python脚本,可让您将Java源代码中的JakartaCommonsLogg

    2.日志实例将使用SLF4J创建 - private final static Logger log = Logger . getLogger( UserSessionFilter . class); + private final static Logger log = LoggerFactory . getLogger( UserSessionFilter . class);...

    log4net的C/S和B/S詳細配置資料

    Log4net是Apache开源项目中的一款流行的日志记录工具,广泛应用于各种软件系统中。下面是log4net在C/S和B/S架构中的详细配置信息。 log4net配置文件 log4net的配置文件通常位于WEB.CONFIG或APP.CONFIG文件中。在...

    CentOS-6.5-apache网站服务器配置实例.doc

    CentOS 6.5 apache网站服务器配置实例 【例题】 配置apache服务器,服务器IP为10.11.23.21,创建两个基于域名的虚拟主机网站,网站 主目录分别为/www/web01,/www/web02,要求使用域名inner1.test.com和inner2.test ...

    JSP开发中Apache-HTTPClient 用户验证的实例详解

    JSP开发中Apache-HTTPClient 用户验证的实例详解 前言: 在微服务框架之外的系统中,我们经常会遇到使用httpClient进行接口调用的问题,除了进行白名单的设置,很多时候我们需要在接口调用的时候需要身份认证。翻了...

    apache-tomcat-5.5.17-src

    │ ch07.rar Log4J使用演示(实例演示) │ ch08.rar 用Ant管理Web应用(实例演示) │ ch09.rar 类加载器(实例演示) │ ch12.rar FORM验证登录文件,BASIC验证配置文件,Realm配置代码 │ ch13.rar ...

    apache_Log_analysis.rar_python log_shell

    维护脚本一例,写得有点乱,只是作为一个实例,演示如何快速利用工具快速达到目的: 应用到:shell与python数据交互、数据抓取,编码转换

    ActiveMQ与Spring线程池整合实例

    ActiveMQ与Spring线程池整合的一个实例。 lib库没有上传。 对于实例的讲解,在竹子的论坛有我对这个实例的帖子...log4j-1.2.14.jar spring-2.0.jar xbean-spring-2.8.jar

    JAVA 人人网登陆实例代码(基于Apache httpclient 4.2.X)

    基于apache httpclient 4.2.X开发 自动处理redirect url jsoup解析response text log4j 自动生成日志 源代码基于UTF-8编码,如果出现乱码请切换到此编码 压缩包 包含所有jar文件。

    最新版本的Struts2+Spring4+Hibernate4框架整合

    同时使用了Struts2、Spring4、Hibernate4、log4j、slf4j、junit4、ehcache等库或框架,搭建一个最基本的项目原型。 三、 三大框架最新版本下载:截止2014-10-01 Struts2.3.6:发布于2014-05-03,目前的最新版本。...

Global site tag (gtag.js) - Google Analytics