`
Davidlwq
  • 浏览: 47650 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

zz:配置log4j

    博客分类:
  • java
 
阅读更多

转自http://www.blogjava.net/zJun/archive/2006/06/28/55511.html

 

Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。

1. 配置文件
Log4J配置文件的基本格式如下:

 #配置根Logger
log4j.rootLogger 
 =   [ level ]   ,  appenderName1 ,  appenderName2 , 
 …

#配置日志信息输出目的地Appender
log4j.appender.appenderName 
 = 
 fully.qualified.name.of.appender.class 
  log4j.appender.appenderName.option1 
 = 
 value1 
  … 
  log4j.appender.appenderName.optionN 
 = 
 valueN 

#配置日志信息的格式(布局)
log4j.appender.appenderName.layout 
 = 
 fully.qualified.name.of.layout.class 
  log4j.appender.appenderName.layout.option1 
 = 
 value1 
  … 
  log4j.appender.appenderName.layout.optionN 
 =  valueN 

其中 [level] 是日志输出级别,共有5级:
 FATAL      0  
ERROR     
 3 
 
WARN      
 4 
 
INFO      
 6 
 
DEBUG     
 7 


Appender 
为日志输出目的地,Log4j提供的appender有以下几种:
 org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

Layout:日志输出格式,Log4j提供的layout有以下几种:
 org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:
   %m   输出代码中指定的消息
  %p   输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL 
  %r   输出自应用启动到输出该log信息耗费的毫秒数 
  %c   输出所属的类目,通常就是所在类的全名 
  %t   输出产生该日志事件的线程名 
  %n   输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n” 
  %d   输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss
 , SSS},输出类似:2002年10月18日  22  10  28  921 
 
  %l   输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:
 10 

2. 在代码中初始化Logger: 
1)在程序中调用BasicConfigurator.configure()方法:给根记录器增加一个ConsoleAppender,输出格式通过PatternLayout设为"%-4r [%t] %-5p %c %x - %m%n",还有根记录器的默认级别是Level.DEBUG
2)配置放在文件里,通过命令行参数传递文件名字,通过PropertyConfigurator.configure(args[x])解析并配置;
3)配置放在文件里,通过环境变量传递文件名等信息,利用log4j默认的初始化过程解析并配置;
4)配置放在文件里,通过应用服务器配置传递文件名等信息,利用一个特殊的servlet来完成配置。

3. 为不同的 Appender 设置日志输出级别:
当调试系统时,我们往往注意的只是异常级别的日志输出,但是通常所有级别的输出都是放在一个文件里的,如果日志输出的级别是BUG!?那就慢慢去找吧。
这时我们也许会想要是能把异常信息单独输出到一个文件里该多好啊。当然可以,Log4j已经提供了这样的功能,我们只需要在配置中修改AppenderThreshold
 
就能实现,比如下面的例子:

[配置文件]
 ### set log levels ###
log4j.rootLogger
 = debug ,  stdout ,  D , 
 E

### 输出到控制台 ###
log4j.appender.stdout
 = 
org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target
 = 
System.out
log4j.appender.stdout.layout
 = 
org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern
 =  %d{ABSOLUTE} %5p %c{1 
}:%L - %m%n

### 输出到日志文件 ###
log4j.appender.D
 = 
org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File
 = 
logs/log.log
log4j.appender.D.Append
 = 
true
log4j.appender.D.Threshold
 = 
DEBUG ## 输出DEBUG级别以上的日志
log4j.appender.D.layout
 = 
org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern
 = %-d{yyyy-MM-dd HH:mm:ss}  [%t:%r ] - [ %p ] 
 %m%n

### 保存异常信息到单独文件 ###
log4j.appender.D
 = 
org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File
 = 
logs/error.log ## 异常日志文件名
log4j.appender.D.Append
 = 
true
log4j.appender.D.Threshold
 = 
ERROR ## 只输出ERROR级别以上的日志!!!
log4j.appender.D.layout
 = 
org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern
 = %-d{yyyy-MM-dd HH:mm:ss}  [%t:%r ] - [ %p ]  %m%n

[代码中使用] 
 public   class  TestLog4j  {
    
 public   static   void  main(String[] args)  
{
        PropertyConfigurator.configure(
 " D:/Code/conf/log4j.properties " 
);
        Logger logger 
 =  Logger.getLogger(TestLog4j. class 
);
        logger.debug(
 " debug " 
);
        logger.error(
 " error " 
);
    }
 

}

运行一下,看看异常信息是不是保存在了一个单独的文件error.log中。

分享到:
评论

相关推荐

    base zz zz zz zz

    base zz zz zz zz zz base zz zz zz zz zz base zz zz zz zz zz base zz zz zz zz zz

    ZZ: 时间管理方法(转贴)

    标题中的“ZZ: 时间管理方法(转贴)”表明这是一篇关于时间管理的文章,可能是从其他地方转载而来。从描述中的“博文链接:https://lkfnn.iteye.com/blog/33600”我们可以推测,这是一篇在ITeye技术社区发表的博客...

    Zz: java 线程池设计思想

    5. **handler**:拒绝策略,当线程池和工作队列都满时,新提交的任务将被拒绝,Java提供了四种预定义策略:抛出异常、直接忽略、调用系统关机、替换为系统默认策略。 线程池的工作流程大致如下: 1. 当任务提交到...

    wincc AX NF ZZ

    wincc SIMATIC WinCC是第一个使用最新的32位技术的过程监视系统,具有良好的开放性和灵活性。 从面市伊始,用户就对SIMATIC WinCC印象深刻。

    我的电脑属性显示配置修改工具

    将sysdm.cpl文件复制到c:\widows\system32\ 路径下替换源文件(记得备份源文件),就可以了只能更改我的电脑属性显示配置,至于硬盘信息和显卡信息可修改注册表更改。 本人以此文件推荐大家看电脑时用everest-全面...

    P10 --- Wakyz​​zz:OC P10 Wakyz​​zz应用的仓库

    【标题】"P10 --- Wakyz​​zz:OC P10 Wakyz​​zz应用的仓库"揭示了这个项目是OpenClassrooms平台上iOS开发课程的一部分,重点在于第十个阶段,即P10。Wakyzzz是一个实际的iOS应用程序,旨在帮助用户在学习iOS开发...

    zz:러스트공부

    【标题】:“zz:러스트공부”指出这个压缩包的内容是关于学习Rust编程语言的资料。"러스트"是Rust的韩语名称,所以我们可以推断这是一个韩语的学习资源。 【描述】:“Z Z 만든목적 러스트공부 잊어버림다압축할...

    给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型

    /*  给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头... 输入: J = "z", S = "ZZ" 输出: 0 注意: S 和 J 最多含有50个字母。 J 中的字符不重复 */

    UCJ_Space整合版

    `jspace_data`这个名字暗示这可能包含与"J_Space"相关的数据,可能是数据库备份、用户数据、日志记录或其他重要资源。 4. **说明.txt、说明read me.txt**: 这两个文件是说明文档,可能包含了关于如何安装、配置和...

    ZZ-2021001 赛项名称:蔬菜嫁接.pdf

    - 赛项包括嫁接育苗理论测试、营养液配制、嫁接操作、接后管理及成活率检查四个部分。 - 嫁接育苗理论测试时间为90分钟,满分为18分。 - 技能竞赛时间为345分钟,涉及营养液配制70分钟、嫁接操作125分钟、接后...

    MATLAB FizzBu​​zz:FizzBu​​zz 以 MATLAB 方式完成 - 使用逻辑索引。-matlab开发

    对于传统的 FizzBu​​zz 问题 - 整数从 1 到 100 - 它的运行速度比基于循环的方法略快,但速度优势非常快。 该函数将播放 FizzBu​​zz 的整数作为输入,并输出包含 'fizz'、'buzz'、'fizzbuzz' 或相应整数的元胞...

    ZZ561401.CAB

    ZZ561401.CAB ZZ561401.CAB ZZ561401.CAB

    C:\Gstarsoft\浩辰CAD电气2013\GRX8\OtherApp.lsp

    J:各种线段合并成多段线;JJ:合并多条多段线;JK:测量线段长度;JKL:标注直线长度;zz:统计线段长度;KK:取消对象选择;K:文字编辑;HH:合并成单行文字;H:转换为当前图层;WFF:高级查找替换;BCC:CAD快速另存为新的...

    DT_ZZ_optimized - MetaTrader 4脚本.zip

    《DT_ZZ_optimized - MetaTrader 4脚本:深入解析与优化技术》 MetaTrader 4(MT4)是一款广泛应用于外汇、期货和股票交易的交易平台,它提供了丰富的技术分析工具和自动化交易功能。在MT4平台中,用户可以编写...

    基于Linux下的Web服务器配置与基于域名的虚拟主机.pdf

    4. 虚拟主机的配置:在虚拟主机的配置中,使用了ServerName指令来指定虚拟主机的域名和端口号,使用了DocumentRoot指令来指定虚拟主机的文档根目录,使用了DirectoryIndex指令来指定虚拟主机的默认页面。 5. 主页的...

    FizzBu​​zz:尝试在JS中创建“ Fizz Buzz”

    如果文件夹中还有其他相关文件,例如测试文件或项目配置,它们可能用于确保代码的正确性或帮助在不同环境中运行FizzBuzz程序。 总之,FizzBuzz是一个很好的练习,可以帮助我们巩固基本编程概念,提高逻辑思维能力,...

    zz_layer.rar

    使用举例:zz 1-3 4 126 127 层号定义,与PADS类似:1~120是etch ;SolderMask: 121(top) 128(bot) ;Silkscreen: 126(top) 129(bot) ;Assembly: 127(top) 130(bot) ;PasteMask: 123(top) 122(bot) ;Display 125(top) ...

    zz:et ZetZ是一个符号验证程序,可以转换为裸机C

    快速快速入门从获取最新的二进制文件不和谐社区编辑器支持Emacs:Vim: 看起来如何ZZ具有一定的美学意义,但仍以C语言为核心。 using <stdio>::{ printf }struct Random { u32 num;}fn rng (Random *self) u32 { ...

    ZZ-2022030网络搭建与应用全国职业院校技能大赛 赛项规程

    "ZZ-2022030网络搭建与应用全国职业院校技能大赛 赛项规程" 本赛项规程旨在选拔中等职业学校信息技术类网络搭建与应用方向优秀技术技能型人才,引领中职学校信息技术类专业建设与课程改革发展方向。该赛项通过真实...

Global site tag (gtag.js) - Google Analytics