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

log4j学习与应用总结

阅读更多
最近几天研究log4j,个人的一些总结
严重声明问题
对于减少jar包时候,myeclipse重新部署不管用,要删除工程后再添加工程,jar包才从服务器中删除了。
log4j的包和一些包产生了冲突,导致日志写入不了文件,花了3天的时间的才找到这个jar包,真够呛。com.ibm.ws.webservices.thinclient_6.1.0.jar

log4j.logger可以指定特定包或者类的日志级别,并且可以指定日志输出的位子
例如:
log4j.logger.com.product.test=ERROR,R
log4j.appender.R=org.apache.log4j.RollingFileAppender

log4j.additivity.com.product.test=false  默认为true
表示com.product.test包下的所有程序日志不记录在root目录下

log4j的配置
一.参数意义说明
输出级别的种类
ERROR、WARN、INFO、DEBUG
ERROR 为严重错误 主要是程序的错误
WARN 为一般警告,比如session丢失
INFO 为一般要显示的信息,比如登录登出
DEBUG 为程序的调试信息
配置日志信息输出目的地
log4j.appender.appenderName = fully.qualified.name.of.appender.class
1.org.apache.log4j.ConsoleAppender(控制台)
2.org.apache.log4j.FileAppender(文件)
3.org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
4.org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
5.org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
配置日志信息的格式
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
1.org.apache.log4j.HTMLLayout(以HTML表格形式布局),
2.org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
3.org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
4.org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
控制台选项
Threshold=DEBUG:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
Target=System.err:默认情况下是:System.out,指定输出控制台
FileAppender 选项
Threshold=DEBUF:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
File=mylog.txt:指定消息输出到mylog.txt文件。
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
RollingFileAppender 选项
Threshold=DEBUG:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
File=mylog.txt:指定消息输出到mylog.txt文件。
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文件。
MaxBackupIndex=2:指定可以产生的滚动文件的最大数。
log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n
日志信息格式中几个符号所代表的含义:
-X号: X信息输出时左对齐;
%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%r: 输出自应用启动到输出该log信息耗费的毫秒数
%c: 输出日志信息所属的类目,通常就是所在类的全名
%t: 输出产生该日志事件的线程名
%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10)
%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
%%: 输出一个"%"字符
%F: 输出日志消息产生时所在的文件名称
%L: 输出代码中的行号
%m: 输出代码中指定的消息,产生的日志具体信息
%n: 输出一个回车换行符,Windows平台为"/r/n",Unix平台为"/n"输出日志信息换行
可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:
1)%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。
2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。
3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。
4)%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边较远输出的字符截掉。
二.文件配置Sample1
log4j.rootLogger=DEBUG,A1,R
#log4j.rootLogger=INFO,A1,R
# ConsoleAppender 输出
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
# File 输出 一天一个文件,输出路径可以定制,一般在根路径下
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=blog_log.txt
log4j.appender.R.MaxFileSize=500KB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
文件配置Sample2
下面给出的Log4J配置文件实现了输出到控制台,文件,回滚文件,发送日志邮件,输出到数据库日志表,自定义标签等全套功能。
log4j.rootLogger=DEBUG,CONSOLE,A1,im
#DEBUG,CONSOLE,FILE,ROLLING_FILE,MAIL,DATABASE
log4j.addivity.org.apache=true

其他的高级应用参照http://blog.csdn.net/azheng270/article/details/2173430
或者http://www.blogjava.net/zJun/archive/2006/06/28/55511.html
分享到:
评论

相关推荐

    log4j学习

    通过以上步骤,我们可以在Java应用中优雅地结合Commons Logging与Log4j,充分利用两者的优势,构建灵活且功能强大的日志系统。这种组合方式不仅简化了日志配置,还提高了应用的可维护性和可扩展性,是企业级Java应用...

    Log4j的学习笔记

    **Log4j学习笔记** Log4j是一款广泛应用于Java编程中的日志记录工具,由Apache软件基金会开发。它提供了一种灵活且强大的机制来记录应用的运行情况,这对于调试、性能分析、问题追踪以及系统监控至关重要。这篇学习...

    Log4j将System.out搞到log4j中输出四

    总结来说,Log4j提供了一套强大的日志管理框架,通过自定义Appender和PrintStream,我们可以轻松地将`System.out.println()`的输出整合到Log4j中,从而实现日志的集中管理和分析。这对于大型项目或者需要严格监控的...

    log4j 学习 笔记

    ### Log4j 学习笔记知识点详解 #### 一、Log4j 概述与架构 **Log4j** 是 **Apache** 组织提供的一个开源日志框架,旨在简化应用开发中的日志记录工作。它能够灵活地记录程序运行时的信息,并允许用户自定义日志的...

    log4j实例,log4j-1.2.9.jar

    总结来说,Log4j-1.2.9是一个重要的日志工具,它提供了灵活的日志记录机制,便于调试、监控和问题排查。通过学习和实践提供的实例,开发者可以更好地掌握其用法,提高项目的可维护性和可追溯性。不过,随着技术的...

    log4J最简单入门

    ### Log4J 最简入门详解 #### 一、Log4J简介与基本概念 Log4J是一款非常流行的Java日志框架,由Apache...通过学习这些基础内容,开发者可以轻松地在自己的项目中集成Log4J,从而更好地管理和调试应用程序的日志信息。

    Log4j实例

    Log4j是一款广泛应用于Java平台的日志记录框架,它提供了灵活且强大的日志记录功能,使得开发者能够方便地控制日志信息的输出级别、格式以及目的地。本实例将深入探讨Log4j的基本使用方法和配置。 一、Log4j的核心...

    log4J学习笔记

    ### log4J学习笔记 #### 一、Apache Commons Logging与log4j及JDK Logger的关系 **Apache Commons Logging** 的设计初衷是为了提供一个简洁统一的日志接口,它并不直接实现日志功能,而是通过桥接的方式支持多种...

    apache-log4j-2.3-bin和commons-logging-1.2

    总结来说,Apache Log4j 2.3 和 Commons Logging 1.2 在Java Web开发中扮演着重要角色,它们帮助开发者方便地记录、管理和分析应用程序的日志,提升开发效率和问题排查能力。这两个库的结合使用,能够实现日志系统的...

    log4j日志打印demo

    总结,Log4j是Java开发中的必备工具,通过合理的配置和使用,可以帮助我们更好地监控和调试应用程序。在"log4j日志打印demo"中,你将学习到如何设置Log4j以实现控制台和SD卡(针对Android)的日志输出,从而在实际...

    log4j入门详解

    ### Log4j入门详解 #### 1. Log4j简介 ...总结而言,Log4j是一个非常强大的日志管理工具,通过合理的配置可以极大地提高日志记录的效率和可读性。无论是初学者还是经验丰富的开发者,都能从中受益。

    log4j.rar log4j使用方法

    **标题与描述解析** 标题“log4j.rar log4j使用...通过阅读提供的`log4j使用方法.doc`文档,你可以更深入地学习如何在你的项目中有效地利用log4j。而`log4j.rar`文件则可能包含实际操作的例子,可以帮助你实践所学。

    log4j 1.2.15 源码

    总结来说,log4j 1.2.15的源码学习对于Java开发者而言是一次宝贵的实践机会,能够帮助我们了解日志框架的设计思路,提升解决问题的能力。通过对源码的阅读和理解,我们可以更好地利用log4j,同时也能为未来的日志...

    log4j中文手册(中文版)

    - 通过对`log4j`的基本概念、主要组件以及配置方法的学习,我们可以有效地利用`log4j`来管理项目的日志记录需求,提高开发效率并确保应用稳定运行。 #### 11. 附录 - **参考文档**:列出了一些相关的技术文档和资料...

    phplog4j

    PHP作为一个广泛应用的服务器端脚本语言,也有类似的需求,因此出现了phplog4j这样的工具,它可能提供了与Java Log4j类似的日志记录功能,方便PHP开发者进行系统调试和问题排查。 在描述中提到的“NULL”可能意味着...

    log4j简单demo

    **日志系统的重要性** 在软件开发中,日志系统扮演着至关重要的角色。...深入学习和理解Log4j,能够极大地提高你的开发效率和问题排查能力。在实践中不断探索,你会发现更多Log4j的高级特性和应用场景。

    log4j讲解源代码

    总结来说,Log4j是一个强大且灵活的日志框架,它允许开发者自定义日志级别、输出格式和输出目的地,从而更好地管理和监控应用程序的运行状态。通过深入学习Log4j的源代码,开发者可以定制化日志系统,以适应各种复杂...

    log4j

    **标题与描述解析** ...通过Eclipse工程文件,学习者可以深入理解Log4j的工作原理,以及如何配置和使用它来适应不同场景的需求。这个实例工程为开发者提供了一个实践Log4j功能的平台,有助于提高日志管理能力。

Global site tag (gtag.js) - Google Analytics