使用log4j将异常日志记录在文本文件里
2015-06-03 14:23
375 查看
首先导入log4j的jar包,一般在网上搜一下即可。
在src文件夹下新建一个log4j.properties,写入以下文字:
log4j.rootLogger=debug,myfile
log4j.appender.myfile=org.apache.log4j.FileAppender
log4j.appender.myfile.File=log\\log4j.txt
log4j.appender.myfile.layout=org.apache.log4j.PatternLayout
log4j.appender.myfile.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} [%t] [%c] [%p] [%L]- %m%n
第一行,rootLogger=debug.myfile。log4j里一共分为5种日志打印级别,debug<info<warn<error<fatal,这里定义的就是你要输出日志的最低级别,如果你定义了debug,那么输出日志的时候logger.debug("123"),那么123就能被输出。如果定义了error.myfile,那么用logger.warn("")输出日志的时候实际上什么都没有,只有logger.error()和logger.fatal才会有日志输出。然后看myfile,这个值是自定义的,要注意的是debug和myfile之间要加逗号。
Log4j 有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和 级别,并可以在运行时控制日志输出的样式和位置。(这句话摘自某个博客)
第二行,log4j.appender.myfile=org.apache.log4j.FileAppender,就是你选择的输出源是文件输出,就是将日志打印到txt这类文本文件中。
log4j.appender.myfile.File=log\\log4j.txt,将日志输出到目标文件内,这里写的就是目标文件的位置。如果目标文件不存在会自动创建。
log4j.appender.myfile.layout=org.apache.log4j.PatternLayout,布局方式,使用PatternLayout对象进行布局,有以下几种布局方式:
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)
log4j.appender.myfile.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} [%t] [%c] [%p] [%L]- %m%n ,日志的布局方式,%开头的字符意义如下:
%p:输出日志信息的优先级,即DEBUG,INFO,WARN,ERROR,FATAL。
%d:输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,如:%d{yyyy/MM/dd HH:mm:ss,SSS}。
%r:输出自应用程序启动到输出该log信息耗费的毫秒数。
%t:输出产生该日志事件的线程名。
%l:输出日志事件的发生位置,相当于%c.%M(%F:%L)的组合,包括类全名、方法、文件名以及在代码中的行数。例如:test.TestLog4j.main(TestLog4j.java:10)。
%c:输出日志信息所属的类目,通常就是所在类的全名。
%M:输出产生日志信息的方法名。
%F:输出日志消息产生时所在的文件名称。
%L::输出代码中的行号。
%m::输出代码中指定的具体日志信息。
%n:输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"。
%x:输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
参考博客:http://moodlove.blog.hexun.com/87666738_d.html
在src文件夹下新建一个log4j.properties,写入以下文字:
log4j.rootLogger=debug,myfile
log4j.appender.myfile=org.apache.log4j.FileAppender
log4j.appender.myfile.File=log\\log4j.txt
log4j.appender.myfile.layout=org.apache.log4j.PatternLayout
log4j.appender.myfile.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} [%t] [%c] [%p] [%L]- %m%n
第一行,rootLogger=debug.myfile。log4j里一共分为5种日志打印级别,debug<info<warn<error<fatal,这里定义的就是你要输出日志的最低级别,如果你定义了debug,那么输出日志的时候logger.debug("123"),那么123就能被输出。如果定义了error.myfile,那么用logger.warn("")输出日志的时候实际上什么都没有,只有logger.error()和logger.fatal才会有日志输出。然后看myfile,这个值是自定义的,要注意的是debug和myfile之间要加逗号。
Log4j 有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和 级别,并可以在运行时控制日志输出的样式和位置。(这句话摘自某个博客)
第二行,log4j.appender.myfile=org.apache.log4j.FileAppender,就是你选择的输出源是文件输出,就是将日志打印到txt这类文本文件中。
log4j.appender.myfile.File=log\\log4j.txt,将日志输出到目标文件内,这里写的就是目标文件的位置。如果目标文件不存在会自动创建。
log4j.appender.myfile.layout=org.apache.log4j.PatternLayout,布局方式,使用PatternLayout对象进行布局,有以下几种布局方式:
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)
log4j.appender.myfile.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} [%t] [%c] [%p] [%L]- %m%n ,日志的布局方式,%开头的字符意义如下:
%p:输出日志信息的优先级,即DEBUG,INFO,WARN,ERROR,FATAL。
%d:输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,如:%d{yyyy/MM/dd HH:mm:ss,SSS}。
%r:输出自应用程序启动到输出该log信息耗费的毫秒数。
%t:输出产生该日志事件的线程名。
%l:输出日志事件的发生位置,相当于%c.%M(%F:%L)的组合,包括类全名、方法、文件名以及在代码中的行数。例如:test.TestLog4j.main(TestLog4j.java:10)。
%c:输出日志信息所属的类目,通常就是所在类的全名。
%M:输出产生日志信息的方法名。
%F:输出日志消息产生时所在的文件名称。
%L::输出代码中的行号。
%m::输出代码中指定的具体日志信息。
%n:输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"。
%x:输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
参考博客:http://moodlove.blog.hexun.com/87666738_d.html
相关文章推荐
- 关于ListView中的item点击无效之android:descendantFocusability属性
- Spring-程序中获取注册bean的方式
- 上传,下载身份证案例
- 工具党:脱壳难问题
- 句柄
- 【Android】使用dex2jar 与JD-Gui 反编译APK文件,查看源代码
- java的Excel的导入导出功能
- 关于JSLink你不知道的五件事
- spring @component的作用
- 投影距离的计算和评估
- thread学习笔记--BackgroundWorker 类
- heratbeat V2版配置LAMP HA说明及hb_gui工具使用说明
- adb常用命令总结
- js中callback.call()和callback()的区别
- CCS 6.0 下载
- 3个UIimageView实现图片的循环切换
- 相对布局相关属性
- svn下载网页代码
- C++以多态方式处理数组可能会遇到的问题
- 上海华魏光纤传感科技有限公司 招聘 《.NET研发工程师》