Log4J的配置文件用于设置记录器的级别、存储和布局,可以接收key=value格式或xml格式的设置信息。通过配置,可以创建Log4J的运行环境。
1. 配置文件Log4J配置文件的基本格式如下:复制代码如下:# Configuration root logger Log4J . root logger=[level],appendername1,appendername2,… #配置日志信息输出目的地appender Log4J . appender . appender name=full。qualified . name . of . appender . class log 4j . appender . appender name . option 1=value 1…log4j . appender .appenderName.optionN=valueN #配置日志信息log4j . appender . appender name . layout=full的格式(布局)。qualified . name . of . Layout . class log 4j . appender . appender name . Layout . option 1=value 1…log4j . app . ender . appender name . Layout . option n=valuen其中[level]是日志输出级别,共有5个级别:复制代码如下:fatal 0 error 3 warn 4 info 6 debug 7 appender是日志输出目的地,Log4j提供的appender如下:复制代码如下:org . Apache . Log4j . console appender(console),org.apache.loglog4j提供的布局如下:org . Apache . log4j . HTML layout(HTML表格形式的布局)、Org.apache.log4j.PatternLayout(可以灵活指定布局方式)、org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)、Org.apache.log4j.TTCCLayout(包含时间、线程、类别等信息。日志生成的)打印参数:Log4J将日志信息格式化为类似C语言中printf函数的打印格式,如下:复制代码如下:% m输出代码中指定的消息% p输出优先级,即DEBUG、info、WARN、ERROR、 FATAL %r从应用程序启动到输出所需的毫秒数%c输出所属的类别通常是类的全名%t输出生成日志事件的线程的名称%n输出回车换行符,在Windows平台上是“\r\n”,在Unix平台上是“\ n”% d输出日志时间点的日期或时间。 默认格式是ISO8601。之后还可以指定格式,比如:% d { yyyymmdhh:mm:ss,SSS},输出类似于:2002年10月18日22: 10: 28,921% l输出日志事件的位置,包括类别名,发生的线程,代码行数。示例:testlog 4 . main(testlog 4 . Java:10)2. 在代码中初始化Logger:1)调用程序中的BasicConfigurator.configure()方法:在根记录器中添加一个ConsoleAppender,通过PatternLayout将输出格式设置为“%-4r [%t] %-5p %c %x-%m%n”,根记录器的默认级别为Level.DEBUG. 2)。配置放在文件中,文件名通过命令行参数传递,通过Property configurator . configure(args[x])解析配置;3)配置放在一个文件中,文件名等信息通过环境变量传递,由log4j默认的初始化过程解析配置;4)配置放在文件中,通过应用服务器配置传递文件名等信息,使用专门的servlet完成配置。3.为不同的Appender设置日志输出级别:在调试系统时,我们往往只关注日志输出的异常级别,但通常所有级别的输出都放在一个文件中。如果日志输出的级别是bug!那就慢慢找吧。这时候我们可能会想,把异常信息单独输出到一个文件里该多好啊。
当然可以,Log4j已经提供了这样的功能,我们只需要在配置中修改附加器的阈值就能实现,比如下面的例子: [配置文件]复制代码代码如下:###设置日志级别### log4j.rootLogger=debug,stdout,D,E ###输出到控制台# # # log4j。阑尾手术。stdout=org。阿帕奇。log4j。控制台附加器log4j。阑尾手术。stdout。目标=系统。out log4j。阑尾手术。stdout。布局=组织。阿帕奇。log4j。模式布局log4j。阑尾手术。stdout。布局。转换模式=% d {绝对} % 5p % c { 1 }:% L-% m % n # # #输出到日志文件# # # log4j。阑尾手术。d=组织。阿帕奇。log4j。dailyrollingfileappender log4j。阑尾手术。d .文件=日志/日志。log log4j。阑尾手术。d . append=true log4j。阑尾手术。d .阈值=调试# #输出调试级别以上的日志log4j。阑尾手术。d .布局=组织。阿帕奇。log4j。模式布局log4j。阑尾手术。布局。转换模式=%-d { yyyy-MM-DD HH:MM:ss }[% t:% r]-[% p]% m % n # # #保存异常信息到单独文件# # # log4j。阑尾手术。d=组织。阿帕奇。log4j。dailyrollingfileappender log4j。阑尾手术。d .文件=日志/错误。日志# #异常日志文件名log4j。阑尾手术。d . append=true log4j。阑尾手术。d .阈值=错误# #只输出错误级别以上的日志!log4j。阑尾手术。d .布局=组织。阿帕奇。log4j。模式布局log4j。阑尾手术。布局。转换模式=%-d { yyyy-MM-DD HH:MM:ss }[% t:% r]-[% p]% m % n[代码中使用]public class testlog 4j { public static void main(String[]args){属性配置器。配置(' D:/Code/conf/log4j。属性’);记录器记录器=记录器。获取日志记录器(testlog 4j .类);伐木工。调试(' debug ');伐木工。错误(' error ');} } 运行一下,看看异常信息是不是保存在了一个单独的文件错误日志中
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。