




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
log4j 配置一、前言: log4j 是一个开放源码项目,是广泛使用的以Java编写的日志记录包。由于log4j出色的表现, 当时在log4j完成时,log4j开发组织曾建议sun在jdk1.4中用log4j取代jdk1.4 的日志工具类,但当时jdk1.4已接近完成,所以sun拒绝使用log4j,当在java开发中实际使用最多的还是log4j, 人们遗忘了sun的日志工具类。 它的一个独有特性包括在类别中继承的概念。通过使用类别层次结构,这样就减少了日志记录输出量,并将日志记录的开销降到最低。 它允许开发者控制以任意间隔输出哪些日志语句。通过使用外部配置文件,完全可以在运行时进行配置。几乎每个大的应用程序都包括其自己的日志记录或跟踪 API。经验表明日志记录是开发周期中的重要组成部分。同样,日志记录提供一些优点。首先,它可以提供运行应用程序的确切 上下文。一旦插入到代码中,生成日志记录输出就不需要人为干涉。其次,日志输出可以保存到永久媒体中以便以后研究。最后,除了在开发阶段中使用,十分丰富 的日志记录包还可以用作审计工具。 依照该规则,在 1996 年初,EU SEMPER(欧洲安全电子市场)项目就决定编写自己的跟踪 API。 在无数次改进、几次具体化和许多工作之后,该 API 已经演变成 log4j,一种流行的 Java 日志记录包。 这个包按 IBM 公共许可证分发,由开放源码权威机构认证。 日志记录有其自己的缺点。它会降低应用程序的速度。如果太详细,它可能会使屏幕滚动变得看不见。 为了减低这些影响,log4j 被设计成快速且灵活的。由于应用程序很少将日志记录当作是主要功能, log4j API 力争易于了解和使用。 log4j,它可以控制以任意间隔输出哪些日志语句。二、主要组件1、根类别(在类别层次结构的顶部,即全局性的日志级别)配置根Logger,其语法为:log4j.rootLogger = level , appenderName, appenderName, .level 是日志记录的类别appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。 类别level 为 OFF、FATAL、ERROR、WARN、INFO、DEBUG、log、ALL或自定义的优先级。og4j常用的优先级FATALERRORWARNINFODEBUG配置根Logger,其语法为:log4j.rootLogger = level , appenderName, appenderName, 如果为log4j.rootLogger=WARN,则意味着只有WARN,ERROR,FATAL被输出,DEBUG,INFO将被屏蔽掉。举例:log4j.rootCategory=INFO,stdout,Runlog,Errorlog根日志类别为INFO,DEBUG将被屏蔽,其他的将被输出。 stdout,Runlog,Errorlog分别为3个输出目的地。2、常用输出格式-X号:X信息输出时左对齐;%p:日志信息级别%d:日志信息产生时间%c:日志信息所在地(类名)%m:产生的日志具体信息%n:输出日志信息换行举例:log4j.appender.stdout.layout.ConversionPattern= %5p %dyyyy-MM-dd HH:mm:ss %c %m %nlog4j.appender.Runlog.layout.ConversionPattern= %5p %dyyyy-MM-dd HH:mm:ss %c %m %nlog4j.appender.Errorlog.layout.ConversionPattern= %5p %dyyyy-MM-dd HH:mm:ss %c %m %n3、布局使用的输出布局,其中log4j提供4种布局:org.apache.log4j.HTMLLayout(以HTML表格形式布局)org.apache.log4j.PatternLayout(可以灵活地指定布局模式),org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) 举例:输出格式为HTML表格log4j.appender.stdout.layout=org.apache.log4j.HTMLLayout输出格式为可以灵活地指定布局模式log4j.appender.stdout.layout=org.apache.log4j.PatternLayout输出格式为包含日志信息的级别和信息字符串log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout输出格式为包含日志产生的时间、线程、类别等等信息log4j.appender.stdout.layout=org.apache.log4j.TTCCLayout4、目的地配置日志信息输出目的地Appender,其语法为log4j.appender.appenderName = .of.appender.classlog4j.appender.appenderName.option1 = value1.log4j.appender.appenderName.option = valueNappenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。 log4j支持的输出目的地:org.apache.log4j.ConsoleAppender 控制台org.apache.log4j.FileAppender 文件org.apache.log4j.DailyRollingFileAppender 每天产生一个日志文件org.apache.log4j.RollingFileAppender (文件大小到达指定尺寸的时候产生一个新的文件),org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方) .SMTPAppender 邮件org.apache.log4j.jdbc.JDBCAppender 数据库其他如:GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等举例:输出到控制台log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender(指定输出到控制台)log4j.appender.Threshold=DEBUG(指定输出类别)log4j.appender.CONSOLE.Target=System.outlog4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout(指定输出布局)log4j.appender.CONSOLE.layout.ConversionPattern=framework %d - %c -%-4r %t %-5p %c %x - %m%n(指定输出格式)输出到文件 log4j.appender.FILE=org.apache.log4j.FileAppender(指定输出到文件) log4j.appender.FILE.File=file.log(指定输出的路径及文件名) log4j.appender.FILE.Append=false log4j.appender.FILE.layout=org.apache.log4j.PatternLayout(指定输出的布局) log4j.appender.FILE.layout.ConversionPattern=framework %d - %c -%-4r %t %-5p %c %x - %m%n(指定输出的格式)输出到文件(轮换日志文件,当日志文件达到指定大小时,该文件就被关闭并备份,然后创建一个新的日志文件) log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender(指定输出到文件) log4j.appender.ROLLING_FILE.Threshold=ERROR(指定输出类别) log4j.appender.ROLLING_FILE.File=rolling.log(指定输出的路径及文件名) log4j.appender.ROLLING_FILE.Append=true log4j.appender.ROLLING_FILE.MaxFileSize=10KB(指定输出到文件的大小) log4j.appender.ROLLING_FILE.MaxBackupIndex=1 log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout(指定采用输出布局) log4j.appender.ROLLING_FILE.layout.ConversionPattern=framework %d - %c -%-4r %t %-5p %c %x - %m%n(指定采用输出格式)输出到Socketlog4j.appender.SOCKET=org.apache.log4j.RollingFileAppender(指定输出到Socket)log4j.appender.SOCKET.RemoteHost=localhost(远程主机)log4j.appender.SOCKET.Port=5001(远程主机端口)log4j.appender.SOCKET.LocationInfo=truelog4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout(布局)log4j.appender.SOCET.layout.ConversionPattern =start%dDATEDATE%n%pPRIORITY%n%xNDC%n%tTHREAD%n%cCATEGORY %n %mMESSAGE%n%n(输出格式)输出到邮件log4j.appender.MAIL=.SMTPAppender(指定输出到邮件)log4j.appender.MAIL.Threshold=FATALlog4j.appender.MAIL.BufferSize=10log4j.appender.MAIL.From=(发件人)log4j.appender.MAIL.SMTPHost=(SMTP服务器)log4j.appender.MAIL.Subject=Log4J Messagelog4j.appender.MAIL.To=(收件人)log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout(布局)log4j.appender.MAIL.layout.ConversionPattern=framework %d - %c -%-4r %t %-5p %c %x - %m%n(格式)输出到数据库log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender(指定输出到数据库)log4j.appender.DATABASE.URL=jdbc:mysql:/localhost:3306/test(指定数据库URL)log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver(指定数据库driver)log4j.appender.DATABASE.user=root(指定数据库用户)log4j.appender.DATABASE.password=root(指定数据库用户密码)log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES (framework %d - %c -%-4r %t %-5p %c %x - %m%n)(组织SQL语句)log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout(布局)log4j.appender.DATABASE.layout.ConversionPattern=framework %d - %c -%-4r %t %-5p %c %x - %m%n(格式)5、日志类别补充有时我们需要对某个特定的部分指定有别于根类别的日志类别,可以指定某个包的优先级如: .neusoft.mbip.dm.util=ERROR ,其中com.neusoft.mbip.dm.util为我们需要特别指定日志类别的部分。 或者可以指定输出文件的优先级 log4j.appender.Errorlog.Threshold=ERROR 三、 常用log4j配置 常用log4j配置,一般可以采用两种方式,.properties和.xml,下面举两个简单的例子:1、perties# 设置org.zblog域对应的级别INFO,DEBUG,WARN,ERROR和输出地A1,A2 #.zblog=ERROR,A1 .zblog=INFO,A2 log4j.appender.A1=org.apache.log4j.ConsoleAppender # 设置输出地A1,为ConsoleAppender(控制台) #log4j.appender.A1.layout=org.apache.log4j.PatternLayout # 设置A1的输出布局格式PatterLayout,(可以灵活地指定布局模式)#log4j.appender.A1.layout.ConversionPattern=%dyyyy-MM-dd HH:mm:ss,SSS %c-%p %m%n # 配置日志输出的格式#log4j.appender.A2=org.apache.log4j.RollingFileAppender # 设置输出地A2到文件(文件大小到达指定尺寸的时候产生一个新的文件)#log4j.appender.A2.File=E:/study/log4j/zhuwei.html # 文件位置#log4j.appender.A2.MaxFileSize=500KB # 文件大小#log4j.appender.A2.MaxBackupIndex=1 log4j.appender.A2.layout=org.apache.log4j.HTMLLayout #指定采用html方式输出2、log4j.xml 3、配置文件加载方法:import org.apache.log4j.Logger;import org.apache.log4j.PropertyConfigurator;import org.apache.log4j.xml.DOMConfigurator;public class Log4jApp public static void main(String args) DOMConfigurator.configure(E:/study/log4j/log4j.xml);/加载.xml文件 /PropertyConfigurator.configure(E:/study/log4j/perties);/加载.properties文件 Logger log=Logger.getLogger(org.zblog.test); (测试); 4、项目使用log4j在web应用中,可以将配置文件的加载放在一个单独的servlet中,并在web.xml中配置该servlet在应用启动时候加载。对于在多人项目中,可以给每一个人设置一个输出通道,这样在每个人在构建Logger时,用自己的域名称,让调试信息输出到自己的log文件中。四、log4j配置举例(properties)#log4j.rootLogger = level , appenderName, appenderName, #类别level 为 OFF、FATAL、ERROR、WARN、INFO、DEBUG、log、ALL或自定义的优先级#Log4j常用的优先级FATALERRORWARNINFODEBUG#stdout为控制台 ,Errorlog为错误记录日志 ,log4j.rootCategory=INFO,stdout,Runlog,Errorlog#输出的appender的格式为#log4j.appender.appenderName = .of.appender.class #log4j.appender.appenderName.option1 = value1 #log4j.appender.appenderName.option = valueN #Log4j中appender支持的输出#org.apache.log4j.ConsoleAppender 控制台#org.apache.log4j.FileAppender 文件#org.apache.log4j.DailyRollingFileAppender 每天产生一个日志文件#org.apache.log4j.RollingFileAppender (文件大小到达指定尺寸的时候产生一个新的文件),#org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方) #.SMTPAppender 邮件#org.apache.log4j.jdbc.JDBCAppender 数据库定义输出的形式log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.Runlog=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.Errorlog=org.apache.log4j.DailyRollingFileAppender#可以指定输出文件的优先级log4j.appender.Errorlog.Threshold=ERROR#指定输出的文件log4j.appender.Runlog.File=D:UserInfoSynWebRootWEB-INFrunlogrunlog.log log4j.appender.Errorlog.File=D:UserInfoSynWebRootWEB-INFerrorlogerrorlog.log #Log4j的layout布局#org.apache.log4j.HTMLLayout 以HTML表格形式布局#org.apache.log4j.PatternLayout 可以灵活地指定布局模式#org.apache.log4j.SimpleLayout 包含日志信息的级别和信息字符串#org.apache.log4j.TTCCLayout 包含日志产生的时间、线程、类别等等信息log4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.Runlog.layout=org.apache.log4j.PatternLayoutlog4j.appender.Errorlog.layout=org.apache.log4j.PatternLayout#输出格式,log4j javadoc org.apache.log4j.PatternLayout #-X号:X信息输出时左对齐;#%p:日志信息级别# %d:日志信息产生时间# %c:日志信息所在地(类名)# %m:产生的日志具体信息# %n:%n:输出日志信息换行log4j.appender.stdout.layout.ConversionPattern= %5p %dyyyy-MM-dd HH:mm:ss %c %m %nlog4j.appender.Runlog.layout.ConversionPattern= %5p %dyyyy-MM-dd HH:mm:ss %c %m %nlog4j.appender.Errorlog.layout.ConversionPattern= %5p %dyyyy-MM-dd HH:mm:ss %c %m %n#指定某个包的优先级 .neusoft.mbip.dm.util=ERROR#示例# Console Appender#log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender#log4j.appender.Threshold=DEBUG#log4j.appender.CONSOLE.Target=System.out#log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout#log4j.appender.CONSOLE.layout.ConversionPattern=framework %d - %c -%-4r %t %-5p %c %x - %m%n#log4j.appender.CONSOLE.layout.ConversionPattern=start%dDATEDATE%n%pPRIORITY%n%xNDC%n%tTHREAD n%cCATEGORY%n%mMESSAGE%n%n# File Appender#log4j.appender.FILE=org.apache.log4j.FileAppender#log4j.appender.FILE.File=file.log#log4j.appender.FILE.Append=false#log4j.appender.FILE.layout=org.apache.log4j.PatternLayout#log4j.appender.FILE.layout.ConversionPattern=framework %d - %c -%-4r %t %-5p %c %x - %m%n# Use this layout for LogFactor 5 analysis# Rolling File? RollingFileAppender?#log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender#log4j.appender.ROLLING_FILE.Threshold=ERROR# 文件位置#log4j.appender.ROLLING_FILE.File=rolling.log#log4j.appender.ROLLING_FILE.Append=true#文件大小#log4j.appender.ROLLING_FILE.MaxFileSize=10KB#指定采用输出布局和输出格式#log4j.appender.ROLLING_FILE.MaxBackupIndex=1#log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout#log4j.appender.ROLLING_FILE.layout.ConversionPattern=framework %d - %c -%-4r %t %-5p %c %x - %m%n# Socket Appender#log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender#log4j.appender.SOCKET.RemoteHost=localhost#log4j.appender.SOCKET.Port=5001#log4j.appender.SOCKET.LocationInfo=true# Set up for Log Facter 5#log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout#log4j.appender.SOCET.layout.ConversionPattern=start%dDATEDATE%n%pPRIORITY%n%xNDC%n%tTHREAD%n%cCATEGORY%n%mMESSAGE%n%n# SMTP Appender#log4j.appender.MAIL=.SMTPAppender#log4j.appender.MAIL.Threshold=FATAL#log4j.appender.MAIL.BufferSize=10#log4j.appender.MAIL.From=#log4j.appender.MAIL.SMTPHost=#log4j.appender.MAIL.Subject=Log4J Message#log4j.appender.MAIL.To=#log4j.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑项目绿色施工方案范本
- 小学英语口语训练与评估方案
- 娱乐行业IP整合营销推广策略方案
- 手物品买卖与物品回收处理作业指导书
- 绿色农业种植技术推广示范基地建设方案
- 三农土地整治管理操作手册
- 软件使用说明手册
- 产品广告推广及传播实战指南
- 快递物流运输路径优化方案
- 广告传媒业内容创意与营销推广策略方案
- YY/T 0196-2005一次性使用心电电极
- LY/T 2497-2015防护林体系生态效益监测技术规程
- GB/T 29790-2020即时检验质量和能力的要求
- GB/T 26358-2010旅游度假区等级划分
- 2023年版下肢动脉硬化闭塞症诊治指南
- 决奈达隆在心房颤动治疗中的应用培训课件
- 华为IPD流程管理全部课件
- 涂料行业企业风险分级管控体系实施指南+生产安全事故隐患排查治理体系实施指南
- 2021年唐山迁安市教师进城考试笔试试题及答案解析
- 2020进口关税税率表
- 涉外导游英语口语实训教程整套课件完整版PPT教学教程最全电子讲义教案(最新)
评论
0/150
提交评论