`
feohoo
  • 浏览: 109864 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

log4j指南

阅读更多


        log4j是java开发人员开发中最常用的日志工具,但是未必每个人都很明白地使用它。
       本文将log4j的一些知识点做了归纳总结,有助于开发人员更加清楚的掌握log4j,遇到一些与日志相关的问题,知道如何更好地处理。
 
1、Log4j.properties中至少有一个appender和一个logger。

2、log4j的初始化,通常我们需要把log4j.jar和Log4j.properties或者log4j.xml放入classpath,log4j默认会在classpath中寻找log4j的配置文件,当然我们也可以指定配置文件所在的位置。
比如:
set JAVA_OPTS=%JAVA_OPTS% -Dlog4j.configuration=
或者在程序中指定PropertyConfigurator.configure()(DOMConfigurator.configure()).

3、Log4j中有三个主要的组件,它们分别是Logger、Appender和Layout.
(1)Appender用来指明log信息打印到什么地方.
(2)Layout的作用是控制Log信息的输出方式.
(3)logger指定log的名字,打印级别和采用哪种或者哪几种Appender。
  

4、所有的logger都是继承于rootLogger,如果某个logger没有被分配level,那么它将从一个被分配了级别的最接近它的父logger那里继承level。
     所有logger最顶层的父logger为rootLogger,所以在定义日志的时候通常我会给rootLogger赋予一个level。

5、log打印的规则:
        当某个logger的logging request(即printing method(error(),info()..))的级别高于或者等于该logger的级别(即在log4j.properties或者log4j.xml中定义)的时候,该logging request就为enable.
         一旦该logger的logging request为enable,那么该logging request将总会打印到该logger所有的appender中包括它的所有父logger的appender。(而不会管父logger的级别如何)。除非该logger的父logger的additivity设置为false,默认的情况下为true。
        某个logger的additivity设置为false,表示log只打印到本log的appender中,而不再打印到其父logger的appender。

6、最简单的log4j.properties定义
log4j.rootLogger=debug, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

7、log4j定义说明

8、log4j是线程安全的,所以我们一般建议定义log时采用static
private static final Log log = LogFactory.getLog(Main.class);

9、性能优化:
推荐:
if (log.isDebugEnabled()) {
    log.debug("hello" + i + j);
}
而不是直接在程序中调用:
log.debug("hello" + i + j);
这样在logger打印条件不满足的情况下就不用执行字符串的操作。

10、实际开发过程中,我们通常会使用Jakarta Commons Logging (JCL),它提供的是一个日志(Log)接口(interface),允许程序开发人员使用不同的具体日志实现工具:Log4J, JDK 1.4等。
如果应用程序的classpath中有log4j, Commons Logging则使用相关的包装(wrapper)类(Log4JLogger)
如果应用程序运行在jdk1.4的系统中, Commons Logging使用相关的包装类(Jdk14Logger) 

分享到:
评论

相关推荐

    log4j2用户指南

    log4j2 最新版2.0.2的英文使用手册

    Apache Log4j 2代码漏洞处置指南及检测工具.zip

    Apache Log4j 2存在远程代码执行漏洞处置指南 及期检测工具

    log4j使用完全指南

    log4j使用完全指南,是log4j初学者的理想教程

    Log4j-使用指南

    Log4j-使用指南

    Log4j配置指南

    Log4j配置

    log4j-user-guide

    log4j的用户指南,适合新手阅读学习。英文版本,但是都是比较简单的英语。log4j本身也比较简单,因此很适合作为英文文档的入门读物。

    Log4j使用指南.docx

    Log4j使用指南。每个项目都会用到的组件。帮您处理系统日志

    log4j完全使用指南

    log4j完全使用指南.里面有两上学习文档。

    Apache Log4j 2 v2 用户指南

    4. Log4j 1.x Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5. API . . . . . . . . . . . . . . . . . . . . . . . . . . . ....

    Log4j入门指南入门教程

    个人收藏的Log4j教程,有需要的可以收藏了

    (zt)Commons-logging + Log4j 入门指南

    NULL 博文链接:https://tianjun309.iteye.com/blog/776137

    log4js使用指南

    一份很详细如同log4j的js debug 资料。

    log4cpp快速使用指南.png

    log4cpp快速使用指南log4cpp快速使用指南log4cpp快速使用指南

    Log4Qt-examples:Log4j for C++ 实用指南

    通过分享的知识,读者可以快速了解 Log4j 内部工作机制,并能熟练使用其各个衍生品 - Log4cpp、log4cplus、log4cxx、Log4Qt。 课程内容 以下是课程的具体内容,以及示例源码: 课程地址 示例源码 --- --- ...

    Express进阶之log4js实用入门指南

    log4js是使用得比较多的一个日志组件,经常跟Express一起配合使用。本文从入门实例开始,讲解log4js的使用,以及如何跟Express进行整合。 入门例子 输出日志如下,包括日志打印时间、日志级别、日志分类、日志内容。...

    JavaWeb 开发指南 PPT课件

    网站开发指南 清华大学出版社 1章 JSP技术简介 2章 JSP语法 3章 JSP内置对象 4章 Servlet技术介绍 ...23章 使用Log4j进行Web应用的日志管理与程序调试 24章 使用XDoclet简化JSP 25章 使用Ant管理JSP Web应用

    JAVA工具整理

    log4j.jar包 文件加密 指定下拉框的值 js验证手机号,邮件 javalog -- Commons-logging + Log4j 入门指南 ssh 的报错 oracle驱动 mysql驱动等

    Struts标签Lucene中文分词构建

    Struts标签Lucene中文分词构建基于词典的Lucene分析器使用Log4j进行日志记录 您使用过旅游指南吗?它总是能让我们快速的找到目的地。我对此有深刻的印象,希望这篇指南也能使您快速的完成Struts标签相关的任务。我...

    elasticgeo:用于弹性搜索的 Geotools 数据存储

    elasticsearch Geotools 数据存储第一次尝试使用 elastic... {GEOSERVER_HOME}/lib 去掉log4j-1.2.14.jar slf4j-simple-1.0.1.jar 添加log4j-1.2.16.jar slf4j-api-1.6.1.jar slf4j-simple-1.6.1.jar {GEOSERVER_HOM

Global site tag (gtag.js) - Google Analytics