`
chakey
  • 浏览: 366967 次
  • 性别: Icon_minigender_1
  • 来自: 水星
社区版块
存档分类
最新评论

[转载]log4j.properties详解与例子

    博客分类:
  • Java
阅读更多

 

在项目中的classes 中新建立一个log4j.properties文件即可;

对于web project 需要在 WebRoot/WEB-INF目录下创建文件

 

 

在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行定义。定义步骤就是对Logger、Appender及Layout的分别使用。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是java properties(key=value)【Java特性文件(键=值)】。(这里只说明properties文件) 

 

1、配置根Logger 

 

  其语法为: 

  log4j.rootLogger = [ level ] , appenderName1, appenderName2, … 

  level : 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定 义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。appenderName:就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。 

  例如:log4j.rootLogger=info,A1,B2,C3 

 

2、配置日志信息输出目的地 

 

  其语法为: 

  log4j.appender.appenderName = fully.qualified.name.of.appender.class // 

  "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(将日志信息以流格式发送到任意指定的地方) 

 

  1.ConsoleAppender选项 

  Threshold=WARN:指定日志消息的输出最低层次。 

  ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 

  Target=System.err:默认情况下是:System.out,指定输出控制台 

  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:指定消息输出到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)''.''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文件。 

  MaxBackupIndex=2:指定可以产生的滚动文件的最大数。 

 

3、配置日志信息的格式 

 

  其语法为: 

  1). log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class 

  "fully.qualified.name.of.layout.class" 可以指定下面4个格式中的一个: 

  1.org.apache.log4j.HTMLLayout(以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=%m%n :指定怎样格式化指定的消息。 

  3.XMLLayout 选项 

  LocationInfo=true:默认值是false,输出java文件和行号 

  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平台为" 

",Unix平台为"

"输出日志信息换行 

  可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如: 

  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字符,就从左边交远销出的字符截掉 

 

 

 

 简单的例子:

 

 

#to file

log4j.rootLogger=INFO,A1

log4j.appender.A1=org.apache.log4j.RollingFileAppender

log4j.appender.A1.File=./log/my.log

log4j.appender.A1.layout=org.apache.log4j.PatternLayout

log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}  %m%n

log4j.appender.A1.MaxFileSize=51200KB

log4j.appender.A1.MaxBackupIndex=10

 

#to console

#log4j.rootLogger=INFO,A2

#log4j.appender.A2=org.apache.log4j.ConsoleAppender 

#log4j.appender.A2.Target=System.out 

#log4j.appender.A2.Encoding=UTF-8 

#log4j.appender.A2.layout=org.apache.log4j.PatternLayout

 

比较详细的例子

 

 

 

log4j.rootLogger=INFO,consoleAppender,logfile,MAIL

log4j.addivity.org.apache=true

 

#ConsoleAppender,控制台输出

#FileAppender,文件日志输出

#SMTPAppender,发邮件输出日志

#SocketAppender,Socket日志

#NTEventLogAppender,Window NT日志

#SyslogAppender,

#JMSAppender,

#AsyncAppender,

#NullAppender

 

#文件输出:RollingFileAppender

#log4j.rootLogger = INFO,logfile

log4j.appender.logfile = org.apache.log4j.RollingFileAppender

log4j.appender.logfile.Threshold = INFO  

# 输出以上的INFO信息 

log4j.appender.logfile.File = INFO_log.html  

#保存log文件路径 

log4j.appender.logfile.Append = true  

# 默认为true,添加到末尾,false在每次启动时进行覆盖 

log4j.appender.logfile.MaxFileSize = 1MB 

# 一个log文件的大小,超过这个大小就又会生成1个日志 # KB ,MB,GB 

log4j.appender.logfile.MaxBackupIndex = 3  

# 最多保存3个文件备份 

log4j.appender.logfile.layout = org.apache.log4j.HTMLLayout 

# 输出文件的格式 

log4j.appender.logfile.layout.LocationInfo = true 

#是否显示类名和行数

log4j.appender.logfile.layout.Title =title:\u63d0\u9192\u60a8\uff1a\u7cfb\u7edf\u53d1\u751f\u4e86\u4e25\u91cd\u9519\u8bef 

#html页面的 < title > 

############################## SampleLayout ####################################

# log4j.appender.logfile.layout = org.apache.log4j.SampleLayout

############################## PatternLayout ###################################

# log4j.appender.logfile.layout = org.apache.log4j.PatternLayout

# log4j.appender.logfile.layout.ConversionPattern =% d % p [ % c] - % m % n % d

############################## XMLLayout #######################################

# log4j.appender.logfile.layout = org.apache.log4j.XMLLayout

# log4j.appender.logfile.layout.LocationInfo = true #是否显示类名和行数

############################## TTCCLayout ######################################

# log4j.appender.logfile.layout = org.apache.log4j.TTCCLayout

# log4j.appender.logfile.layout.DateFormat = ISO8601

#NULL, RELATIVE, ABSOLUTE, DATE or ISO8601.

# log4j.appender.logfile.layout.TimeZoneID = GMT - 8 : 00 

# log4j.appender.logfile.layout.CategoryPrefixing = false ##默认为true 打印类别名

# log4j.appender.logfile.layout.ContextPrinting = false ##默认为true 打印上下文信息

# log4j.appender.logfile.layout.ThreadPrinting = false ##默认为true 打印线程名

# 打印信息如下:

#2007 - 09 - 13 14 : 45 : 39 , 765 [http - 8080 - 1 ] ERROR com.poxool.test.test - error成功关闭链接

###############################################################################

#每天文件的输出:DailyRollingFileAppender

#log4j.rootLogger = INFO,errorlogfile

log4j.appender.errorlogfile = org.apache.log4j.DailyRollingFileAppender

log4j.appender.errorlogfile.Threshold = ERROR

log4j.appender.errorlogfile.File = ../logs/ERROR_log

log4j.appender.errorlogfile.Append = true 

#默认为true,添加到末尾,false在每次启动时进行覆盖

log4j.appender.errorlogfile.ImmediateFlush = true  

#直接输出,不进行缓存

# ' . ' yyyy - MM: 每个月更新一个log日志

# ' . ' yyyy - ww: 每个星期更新一个log日志

# ' . ' yyyy - MM - dd: 每天更新一个log日志

# ' . ' yyyy - MM - dd - a: 每天的午夜和正午更新一个log日志

# ' . ' yyyy - MM - dd - HH: 每小时更新一个log日志

# ' .

 

转载链接:http://dev.firnow.com/course/3_program/java/javashl/20090306/158648.html

分享到:
评论

相关推荐

    安川MP7系列工控系统源码解析:关键算法与硬件交互揭秘

    内容概要:本文深入剖析了安川MP7系列工业控制系统的关键源码,重点介绍了运动轨迹规划、通信协议处理以及故障处理机制等方面的技术细节。通过对实际代码片段的解读,揭示了该系统在硬件寄存器直接访问、特殊功能码处理等方面的独特之处。同时,文中还分享了一些基于实践经验得出的重要参数设置及其背后的故事,如特定摩擦补偿系数的选择原因等。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对安川产品有一定了解并希望深入了解其内部工作机制的专业人士。 使用场景及目标:帮助读者掌握安川MP7系列控制器的工作原理,提高对类似系统的维护能力和故障排查效率。对于想要进一步研究或二次开发该系统的开发者来说,也能提供宝贵的参考资料。 其他说明:文章不仅限于理论讲解,还包括了许多来自一线的实际案例和经验教训,使读者能够更好地理解和应用所学知识。

    自动化测试与脚本开发_Python3_pynput_键盘鼠标操作录制执行代码生成工具_用于自动化测试_脚本录制_重复操作模拟_宏命令生成_提高工作效率_支持GUI界面_跨平台兼容_.zip

    自动化测试与脚本开发_Python3_pynput_键盘鼠标操作录制执行代码生成工具_用于自动化测试_脚本录制_重复操作模拟_宏命令生成_提高工作效率_支持GUI界面_跨平台兼容_

    嵌入式八股文面试题库资料知识宝典-深入分析Windows和Linux动态库应用异同.zip

    嵌入式八股文面试题库资料知识宝典-深入分析Windows和Linux动态库应用异同.zip

    嵌入式八股文面试题库资料知识宝典-C语言总结.zip

    嵌入式八股文面试题库资料知识宝典-C语言总结.zip

    风储直流微电网母线电压控制策略与双闭环MPPT技术研究

    内容概要:本文详细探讨了风储直流微电网中母线电压控制的关键技术。首先介绍了风储直流微电网的背景和发展现状,强调了母线电压控制的重要性。接着阐述了永磁风机储能并网技术,解释了永磁风机如何通过直接驱动发电机将风能转化为电能,并确保与电网的同步性和稳定性。然后深入讨论了双闭环控制MPPT技术,这是一种通过内外两个闭环控制系统来实现实时调整发电机运行参数的技术,确保风机始终处于最大功率点附近。最后,文章探讨了储能控制母线电压平衡的方法,即通过储能系统的充放电操作来维持母线电压的稳定。结论部分指出,通过这些技术的有机结合,可以实现对风储直流微电网的有效管理和优化控制。 适合人群:从事新能源技术研发的专业人士、电气工程研究人员、风电系统工程师。 使用场景及目标:适用于希望深入了解风储直流微电网母线电压控制策略的研究人员和技术人员,旨在帮助他们掌握最新的控制技术和方法,以提高系统的稳定性和效率。 其他说明:文章还对未来风储直流微电网的发展进行了展望,指出了智能化和自动化的趋势,以及储能技术的进步对系统性能的影响。

    嵌入式八股文面试题库资料知识宝典-C++object-oriented.zip

    嵌入式八股文面试题库资料知识宝典-C++object-oriented.zip

    【操作系统开发】HarmonyOS目录结构详解:构建高效开发环境与跨设备协同应用

    内容概要:文章详细介绍了HarmonyOS的目录结构及其重要性,从整体框架到核心目录的具体功能进行了全面剖析。HarmonyOS凭借其分布式架构和跨设备协同能力迅速崛起,成为全球操作系统领域的重要力量。文章首先概述了HarmonyOS的背景和发展现状,强调了目录结构对开发的重要性。接着,具体介绍了根目录文件、AppScope、entry和oh_modules等核心目录的功能和作用。例如,AppScope作为全局资源配置中心,存放应用级的配置文件和公共资源;entry目录是应用的核心入口,负责源代码和界面开发。此外,文章还对比了HarmonyOS与Android、iOS目录结构的异同,突出了HarmonyOS的独特优势。最后,通过旅游应用和电商应用的实际案例,展示了HarmonyOS目录结构在资源管理和代码组织方面的应用效果。; 适合人群:具备一定编程基础,尤其是对移动操作系统开发感兴趣的开发者,包括初学者和有一定经验的研发人员。; 使用场景及目标:①帮助开发者快速理解HarmonyOS的目录结构,提高开发效率;②为跨设备应用开发提供理论和技术支持;③通过实际案例学习资源管理和代码组织的最佳实践。; 其他说明:HarmonyOS的目录结构设计简洁明了,模块职责划分明确,有助于开发者更好地管理和组织代码和资源。随着万物互联时代的到来,HarmonyOS有望在开发便利性和生态建设方面取得更大进展,吸引更多开发者加入其生态系统。

    飞轮储能充放电控制Simulink仿真模型:基于永磁同步电机的矢量控制与dq轴解耦

    内容概要:本文详细介绍了飞轮储能充放电控制的Simulink仿真模型,重点在于采用永磁同步电机的矢量控制和dq轴解耦控制策略。充电时,外环控制转速,内环控制dq轴电流;放电时,外环控制直流母线电压,内环同样控制dq轴电流。文中还讨论了硬件与软件环境的选择,以及仿真模型的调试与运行情况,最终得出该模型具有良好的跟随性能和波形完美度。 适用人群:从事电力电子系统、储能技术和Simulink仿真的研究人员和技术人员。 使用场景及目标:适用于需要对飞轮储能系统进行深入研究和仿真的场合,旨在提高充放电效率和稳定性,满足不同应用场景的需求。 其他说明:该仿真模型已调试完成,可以直接用于进一步的研究和实际应用,为未来的飞轮储能技术研发提供了有价值的参考。

    嵌入式八股文面试题库资料知识宝典-北京瑞德方科技.zip

    嵌入式八股文面试题库资料知识宝典-北京瑞德方科技.zip

    嵌入式八股文面试题库资料知识宝典-同方万维硬件测试工程师.zip

    嵌入式八股文面试题库资料知识宝典-同方万维硬件测试工程师.zip

    1_15套python PDF格式.zip

    1_15套python PDF格式.zip

    三相三电平整流器仿真:基于电压电流双闭环控制与SPWM调制的性能分析

    内容概要:本文详细介绍了三相三电平整流器的仿真过程及其性能分析。文中首先概述了三相三电平整流器的基本概念及其在电力系统中的重要作用,接着重点探讨了电压电流双闭环控制方式的工作原理和优势,以及SPWM调制技术的具体应用。通过仿真文件展示了整流器在不同条件下的响应情况,验证了这两种技术的有效性和优越性。最后,作者表达了对未来实际应用的期望。 适合人群:从事电力电子研究的技术人员、高校相关专业师生、对电力控制系统感兴趣的工程爱好者。 使用场景及目标:适用于希望深入了解三相三电平整流器工作原理和技术细节的研究人员;目标是在理论基础上掌握电压电流双闭环控制和SPWM调制的实际应用方法。 其他说明:本文提供的仅为仿真文件,未涉及实物实验数据。

    嵌入式八股文面试题库资料知识宝典-恒光科技.zip

    嵌入式八股文面试题库资料知识宝典-恒光科技.zip

    嵌入式八股文面试题库资料知识宝典-北京天华威视科技有限公司面试题.zip

    嵌入式八股文面试题库资料知识宝典-北京天华威视科技有限公司面试题.zip

    嵌入式八股文面试题库资料知识宝典-微软研究院笔试题目的答案.zip

    嵌入式八股文面试题库资料知识宝典-微软研究院笔试题目的答案.zip

    Arduino UART实验例程【正点原子EPS32S3】

    Arduino UART实验例程,开发板:正点原子EPS32S3,本人主页有详细实验说明可供参考。

    嵌入式八股文面试题库资料知识宝典-朝歌数码.zip

    嵌入式八股文面试题库资料知识宝典-朝歌数码.zip

    嵌入式八股文面试题库资料知识宝典-Cortex系列.zip

    嵌入式八股文面试题库资料知识宝典-Cortex系列.zip

    嵌入式八股文面试题库资料知识宝典-中科中科长青笔试题.zip

    嵌入式八股文面试题库资料知识宝典-中科中科长青笔试题.zip

    智能车辆自适应巡航ACC与纵向跟车避撞的分层式控制及模糊权重调整策略

    内容概要:本文详细介绍了自适应巡航(ACC)控制和纵向跟车避撞控制的分层式控制策略。上层控制通过建立离散跟车运动学模型和基于反馈校正的跟车预测模型,获得期望加速度;下层控制则根据上层提供的数据计算期望制动压力和节气门开度。文中特别强调了引入松弛因子进行多目标优化求解,以及利用模糊控制动态调整权重系数的方法,如车间距误差权重系数q_Δd、两车相对速度权重系数q_vrel和自车加速度权重系数q_ar。通过这种方式,系统能够在复杂多变的道路环境中保持灵活性和稳定性。仿真结果显示,在前车以50~70km/h的正弦速度变化行驶的情况下,自车能够平稳跟车,各项参数变化平稳。 适合人群:从事智能车辆研究的技术人员、自动驾驶领域研究人员、高校相关专业师生。 使用场景及目标:适用于智能车辆系统的设计与开发,特别是需要提升ACC系统性能的研究项目。目标是提高驾驶的安全性、舒适性和经济性。 其他说明:实验基于Matlab/Simulink 2021a和Carsim 2019.0版本完成,提供了完整的运行视频和参考资料。

Global site tag (gtag.js) - Google Analytics