




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、log4j配置(二)附加ibaits显示SQL配置2.2.3. 配置文件. 客户程序配置文件log4j.rootLogger=INFO, A1log4j.appender.A1=org.apache.log4j.ConsoleAppenderlog4j.appender.A1.layout=org.apache.log4j.PatternLayoutlog4j.appender.A1.layout.ConversionPattern=%-4r %-5p %t %37c %3x - %m%n. 服务器程序配置文件log4j.rootLogger=INFO, A1log
2、4j.appender.A1=org.apache.log4j.ConsoleAppenderlog4j.appender.A1.layout=org.apache.log4j.PatternLayoutlog4j.appender.A1.layout.ConversionPattern=%-4r %-5p %t %37c %3x - %m%n2.3. 比较比较这两个应用可以看出,采用Log4j进行日志操作的整个过程相当简单明了,与直接使用System.out.println语句进行日志信息输出的 方式相比,基本上没有增加代码量,同时能够清楚地理解每一条日志信息的重要程度。通过控制配置文件,我
3、们还可以灵活地修改日志信息的格式,输出目的地等等 方面,而单纯依靠System.out.println语句,显然需要做更多的工作。>>>> 3 . Log4j日志管理系统简单使用说明 <<<<通常,我们都提供一个名为 perties的文件,在第一次调用到Log4J时,Log4J会在类路径(./web-inf/class/当然也可以放到其它任何目录,只要该目录被包含到类路径中即可)中定位这个文件,并读入这个文件完成的配置。这个配置文件告 诉Log4J以什么样的格式、把什么样的信息、输出到什么地方。Log4j有三个主要的组件:Log
4、gers(记录器),Appenders(输出源)和Layouts(布局),这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松的记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。下面对三个组件分别进行说明:1、 LoggersLoggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL。这五个级别是有顺序的,DEBUG < INFO < WARN < ERROR < FATAL,分别用来指定这条日志信息的重要程度,明白这一点很重要,这里Log4j有一个规则:假设Loggers级别为P
5、,如果在Loggers中发生了一个级别Q比P高,则可以启动,否则屏蔽掉。假设你定义的级别是info,那么error和warn的日志可以显示而比他低的debug信息就不显示了。Java程序举例来说:/建立Logger的一个实例,命名为“com.foo”Logger logger = Logger.getLogger("com.foo"); /"com.foo"是实例进行命名,也可以任意/设置logger的级别。通常不在程序中设置logger的级别。一般在配置文件中设置。 logger.setLevel(Level.INFO);Logger barlogge
6、r = Logger.getLogger("com.foo.Bar");/下面这个请求可用,因为WARN >= INFOlogger.warn("Low fuel level.");/下面这个请求不可用,因为DEBUG < INFOlogger.debug("Starting search for nearest gas station.");/命名为“com.foo.bar”的实例barlogger会继承实例“com.foo”的级别。因此,下面这个请求可用,因为INFO >= INFO(
7、"Located nearest gas station.");/下面这个请求不可用,因为DEBUG < INFObarlogger.debug("Exiting gas station search");这里“是否可用”的意思是能否输出Logger信息。在对Logger实例进行命名时,没有限制,可以取任意自己感兴趣的名字。一般情况下建议以类的所在位置来命名Logger实例,这是目前来讲比较有效的Logger命名方式。这样可以使得每个类建立自己的日志信息,便于管理。比如:static Logger logger = Logger.getLogger
8、(ClientWithLog4j.class.getName();2、Appenders禁用与使用日志请求只是Log4j其中的一个小小的地方,Log4j日志系统允许把日志输出到不同的地方,如控制台(Console)、文件(Files)、根据天数或者文件大小产生新的文件、以流的形式发送到其它地方等等。其语法表示为:org.apache.log4j.ConsoleAppender(控制台)org.apache.log4j.FileAppender(文件)org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)org.apache.log4j.Rol
9、lingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件) org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)配置时使用方式为:log4j.appender.appenderName = .of.appender.classlog4j.appender.appenderName.option1 = value1log4j.appender.appenderName.option = valueN这样就为日志的输出提供了相当大的便利。3、Layouts有时用户希望根据自己的喜好格式化
10、自己的日志输出。Log4j可以在Appenders的后面附加Layouts来完成这个功能。Layouts提供了 四种日志输出样式,如根据HTML样式、自由指定样式、包含日志级别与信息的样式和包含日志时间、线程、类别等信息的样式等等。其语法表示为:org.apache.log4j.HTMLLayout(以HTML表格形式布局),org.apache.log4j.PatternLayout(可以灵活地指定布局模式),org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等
11、信息)配置时使用方式为:log4j.appender.appenderName.layout =.of.layout.classlog4j.appender.appenderName.layout.option1 = value1log4j.appender.appenderName.layout.option = valueN>>>> 4 . Log4j的配置 <<<<以上是从原理方面说明Log4j的使用方法,在具体Java编程使用Log4j可以参照以下示例:1、 建立Logger实例:语法表示:publ
12、ic static Logger getLogger( String name)实际使用:static Logger logger = Logger.getLogger(ServerWithLog4j.class.getName () ;2、 读取配置文件:获得了Logger的实例之后,接下来将配置Log4j使用环境:语法表示:BasicConfigurator.configure():自动快速地使用缺省Log4j环境。PropertyConfigurator.configure(String configFilename):读取使用Java的特性文件编写的配置文件。DOMConfigurat
13、or.configure(String filename):读取XML形式的配置文件。实际使用:PropertyConfigurator.configure("ServerWithLperties");3、 插入日志信息完成了以上连个步骤以后,下面就可以按日志的不同级别插入到你要记录日志的任何地方了。语法表示:Logger.debug(Object message);/调试信息L(Object message);/一般信息Logger.warn(Object message);/警告信息Logger.error(Object messag
14、e);/错误信息Logger.fatal(Object message);/致命错误信息实际使用:("ServerSocket before accept: " + server);>>>> 5. 配置过程 <<<<在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行定义。定义步骤就是对Logger、Appender及Layout的分别使用。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是java properties(key=value)【Java特性文件(键=值)】。下面我
15、们介绍使用Java特性文件做为配置文件的方法具体如下:1、配置根Logger,其语法为:log4j.rootLogger = level , appenderName1, appenderName2, level : 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定 义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。appenderN
16、ame:就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。例如:log4j.rootLoggerinfo,A1,B2,C32、配置日志信息输出目的地,其语法为:log4j.appender.appenderName = .of.appender.class /".of.appender.class" 可以指定下面五个目的地中的一个:1.org.apache.log4j.ConsoleAppender(控制台)2.org.apache.log4j.FileAppender(文件)3.o
17、rg.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)4.org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)5.org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)1.ConsoleAppender选项Threshold=WARN:指定日志消息的输出最低层次。ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。Target=System.err:默认情况下是:System.out,指定输出
18、控制台2.FileAppender 选项Threshold=WARN:指定日志消息的输出最低层次。ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。File=mylog.txt:指定消息输出到mylog.txt文件。Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。3.DailyRollingFileAppender 选项Threshold=WARN:指定日志消息的输出最低层次。ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。File=mylog.txt:
19、指定消息输出到mylog.txt文件。Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。DatePattern='.'yyyy-ww:每周滚动一次文件,即每周产生一个新的文件。当然也可以指定按月、周、天、时和分。即对应的格式如下:1)'.'yyyy-MM: 每月2)'.'yyyy-ww: 每周3)'.'yyyy-MM-dd: 每天4)'.'yyyy-MM-dd-a: 每天两次5)'.'yyyy-MM-dd-HH: 每小时6)'.
20、9;yyyy-MM-dd-HH-mm: 每分钟4.RollingFileAppender 选项Threshold=WARN:指定日志消息的输出最低层次。ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。File=mylog.txt:指定消息输出到mylog.txt文件。Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文件。MaxBackupI
21、ndex=2:指定可以产生的滚动文件的最大数。 实际应用:log4j.appender.A1=org.apache.log4j.ConsoleAppender /这里指定了日志输出的第一个位置A1是控制台ConsoleAppender3、配置日志信息的格式,其语法为:A. log4j.appender.appenderName.layout = .of.layout.class ".of.layout.class" 可以指定下面4个格式中的一个:1.org.apache.log4j.HTMLLa
22、yout(以HTML表格形式布局),2.org.apache.log4j.PatternLayout(可以灵活地指定布局模式),3.org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),4.org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)1.HTMLLayout 选项LocationInfo=true:默认值是false,输出java文件名称和行号 Title=my app file: 默认值是 Log4J Log Messages.2.PatternLayout 选项ConversionPattern=%
23、m%n :指定怎样格式化指定的消息。3.XMLLayout 选项LocationInfo=true:默认值是false,输出java文件和行号实际应用:log4j.appender.A1.layout=org.apache.log4j.PatternLayoutB. log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %dyyyy-MM-dd HH:mm:ssS %c %m%n这里需要说明的就是日志信息格式中几个符号所代表的含义:X号: X信息输出时左对齐;%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL
24、, %d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%dyyy 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 s
25、ervlets这样的多客户多线程的应用中。%: 输出一个"%"字符%F: 输出日志消息产生时所在的文件名称%L: 输出代码中的行号%m: 输出代码中指定的消息,产生的日志具体信息%n: 输出一个回车换行符,Windows平台为"rn",Unix平台为"n"输出日志信息换行可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:1)%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。2)%-20c:指定输出category的名称,最小的宽度是2
26、0,如果category的名称小于20的话,"-"号指定左对齐。3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。4)%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边交远销出的字符截掉。这里上面三个步骤是对前面Log4j组件说明的一个简化;下面给出一个具体配置例子,在程序中可以参照执行:log4j.rootLogger=INFO,A1,B2log4j.appender.A1=org.apache.log4j.C
27、onsoleAppenderlog4j.appender.A1.layout=org.apache.log4j.PatternLayoutlog4j.appender.A1.layout.ConversionPattern=%-4r %-5p %dyyyy-MM-dd HH:mm:ssS %c %m%n根据上面的日志格式,某一个程序的输出结果如下:0 INFO 2003-06-13 13:23:46968 ClientWithLog4j Client socket: Socketaddr=localhost/,port=8002,localport=201416 DEBUG
28、2003-06-13 13:23:46984 ClientWithLog4j Server says: 'Java server with log4j, Fri Jun 13 13:23:46 CST 2003'16 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j GOOD16 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j Server responds: 'Command 'HELLO' not understood.'16 DEBUG 2003-06-13
29、13:23:46984 ClientWithLog4j HELP16 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j Server responds: 'Vocabulary: HELP QUIT'16 DEBUG 2003-06-13 13:23:46984 ClientWithLog4j QUIT4. # 当输出信息于回滚文件时log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender /指定以文件的方式输出日志log4j.appender.ROLLING_FIL
30、E.Threshold=ERRORlog4j.appender.ROLLING_FILE.File=rolling.log /文件位置,也可以用变量$java.home、rolling.loglog4j.appender.ROLLING_FILE.Append=truelog4j.appender.ROLLING_FILE.MaxFileSize=10KB /文件最大尺寸 log4j.appender.ROLLING_FILE.MaxBackupIndex=1 /备份数log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayo
31、utlog4j.appender.ROLLING_FILE.layout.ConversionPattern=framework %d - %c -%-4r %t %-5p %c %x - %m%n×××××××××××××××××××××××××××××××××
32、15;××××××××××××××>>>> 6. Log4j比较全面的配置 <<<<LOG4J的配置之简单使它遍及于越来越多的应用中了:Log4J配置文件实现了输出到控制台、文件、回滚文件、发送日志邮件、输出到数据库日志表、自定义标签等全套功能。择其一二使用就够用了,log4j.rootLogger=DEBUG,CONSOLE,A1,.apache=true# 应用于控
33、制台log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppenderlog4j.appender.Threshold=DEBUGlog4j.appender.CONSOLE.Target=System.outlog4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayoutlog4j.appender.CONSOLE.layout.ConversionPattern=framework %d - %c -%-4r%t %-5p %c %x - %m%n#log4j.appender.CONSOL
34、E.layout.ConversionPattern=start%dDATEDATE%n%pPRIORITY%n%xNDC%n%tTHREAD n%cCATEGORY%n%mMESSAGE%n%n#应用于文件log4j.appender.FILE=org.apache.log4j.FileAppenderlog4j.appender.FILE.File=file.loglog4j.appender.FILE.Append=falselog4j.appender.FILE.layout=org.apache.log4j.PatternLayoutlog4j.appender.FILE.layou
35、t.ConversionPattern=framework %d - %c -%-4r %t %-5p %c %x - %m%n# Use this layout for LogFactor 5 analysis# 应用于文件回滚log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppenderlog4j.appender.ROLLING_FILE.Threshold=ERRORlog4j.appender.ROLLING_FILE.File=rolling.log /文件位置,也可以用变量$java.home、rolling.lo
36、glog4j.appender.ROLLING_FILE.Append=true /true:添加 false:覆盖log4j.appender.ROLLING_FILE.MaxFileSize=10KB /文件最大尺寸log4j.appender.ROLLING_FILE.MaxBackupIndex=1 /备份数log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayoutlog4j.appender.ROLLING_FILE.layout.ConversionPattern=framework %d - %c -%-4r
37、%t %-5p %c %x - %m%n#应用于socketlog4j.appender.SOCKET=org.apache.log4j.RollingFileAppenderlog4j.appender.SOCKET.RemoteHost=localhostlog4j.appender.SOCKET.Port=5001log4j.appender.SOCKET.LocationInfo=true# Set up for Log Facter 5log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayoutlog4j.appender.S
38、OCET.layout.ConversionPattern=start%dDATEDATE%n%pPRIORITY%n%xNDC%n%tTHREAD%n%cCATEGORY%n%mMESSAGE%n%n# Log Factor 5 Appenderlog4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appenderlog4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000# 发送日志给邮件log4j.appender.MAIL=.SMTPAppenderlog4j.appender.MAIL.Threshold=FATALlog4j.appender.MAIL.BufferSize=10log4j.appender.MAIL.SMTPHost=log4j.appender.MAIL.Subject=Log4J Messagelog4j.appender.MAIL.layout=org.apache.log4j.PatternLayoutlog4j.appender.MAIL.layout.ConversionPattern=framework %d - %c -%-4r %t %-5p %c %x - %m%n# 用于数据库log4j.appender.DATABASE=org.ap
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 手形的联想(教学设计)-2023-2024学年人美版(2012)美术一年级下册
- 美容师考试的职业发展与规划试题及答案
- 2024年宠物营养师考试相关学科联系试题及答案
- 温州外卖员考试题及答案
- 培养语文逻辑思维小学六年级试题及答案
- 致敬城市的光(教学设计)-小学生感恩主题班会
- 论古代诗歌中的待嫁女子的情感表达试题及答案
- Unit 10 What does that sign mean?(教学设计)-2024-2025学年湘少版(三起)英语五年级上册
- 小自考公共事业管理绩效导向设计试题及答案
- 七年级地理上册 1.1地球和地球仪教学设计2 (新版)新人教版
- 2025年内蒙古自治区中考一模语文试题(原卷版+解析版)
- 2025-2030中国儿科用药行业深度调研及投资前景预测研究报告
- 2025年共青团入团积极分子考试测试试卷题库及答案
- 【艾青诗选】40《解冻》思维导图+批注
- 《庐山古诗词》课件
- 金属加工机械制造行业分析报告
- 2024-2025学年人教版数学七下 第七章 相交线与平行线(含答案)
- GB/T 44994-2024声学助听器验配管理
- 塔吊司机安全培训
- 失眠量表(PSQI)评分项目及标准
- 会议文档制作的艺术与技巧
评论
0/150
提交评论