使用log4j将异常日志记录在文本文件里

来源:互联网 发布:python 输入中文报错 编辑:程序博客网 时间:2024/05/22 04:40

首先导入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

0 0
原创粉丝点击