log4j 配置

使用Log4J可以控制日志信息输送的目的地,包括控制台,文件,GUI组件和NT事件记录器,也可以控制每一条日志的输出格式,或通过定义每一条日志信息的级别,更加细致地控制日志的生成过程。

Logger(日志记录器)
控制要启用或禁用哪些日志记录语句,并对日志信息进行级别限制。Logger被指定为实体,由一个String类的名字识别。Logger的名字是大小写敏感的,且名字之间具有继承关系,子名用父名作为前缀,用点“.”分隔,例如x.y是x.y.z的父级。root Logger(根Logger)是所有Logger的祖先,它总是存在的而且不可以通过名字获得。

 

配置root Logger的语法为:

log4j.rootLogger=[log level],appenderName,appenderName,...

 

配置自定义Logger组件的语法为:

log4j.logger.loggerName=[log level],appenderName,appenderName,...

 

每个Logger都一个日志级别(log level),用来控制日志信息的输出。

级别清单
排序级别说明
Aoff 最高等级,用于关闭所有日志记录。
Bfatal 指出每个严重的错误事件将会导致应用程序的退出。
Cerror指出虽然发生错误事件,但仍然不影响系统的继续运行。
Dwarm表明会出现潜在的错误情形。
Einfo一般和在粗粒度级别上,强调应用程序的运行全程。
Fdebug一般用于细粒度级别上,对调试应用程序非常有帮助。
Gall最低等级,用于打开所有日志记录。

 

上面这些级别是定义在org.apache.log4j.Level类中。Log4j只建议使用4个级别,优先级从高到低分别是error,warn,info和debug。通过使用日志级别,可以控制应用程序中相应级别日志信息的输出。例如,如果使用info级别,则应用程序中所有低于info级别的日志信息(如debug)将不会被打印出来。

 

Appenders(输出端)
用来指定日志信息输出到哪个地方,可以同时指定多个输出目的地。Log4j允许将信息输出到许多不同的输出设备中,一个log信息输出目的地就叫做一个Appender。
每个Logger都可以拥有一个或多个Appender,每个Appender表示一个日志的输出目的地。可以使用Logger.addAppender(Appender app)为Logger增加一个Appender,也可以使用Logger.removeAppender(Appender app)为Logger删除一个Appender。

设备清单
输出设备说明
org.apache.log4j.ConsoleAppender将日志信息输出到控制台。
org.apache.log4j.FileAppender将日志信息输出到一个文件。
org.apache.log4j.DailyRollingFileAppender将日志信息输出到一个日志文件,并且每天输出到一个新的日志文件。
org.apache.log4j.RollingFileAppender将日志信息输出到一个日志文件,并且指定文件的尺寸,当文件大小达到指定尺寸时,会自动把文件改名,同时产生一个新的文件。
org.apache.log4j.WriteAppender将日志信息以流格式发送到任意指定地方。
org.apache.log4j.jdbc.JDBCAppender通过JDBC把日志信息输出到数据库中。

 

Layout(日志布局)

布局清单
输出布局说明
HTMLLayout格式化日志输出为HTML表格形式
SimpleLayout以一种非常简单的方式格式化日志输出,它打印三项内容:级别-信息
PatternLayout根据指定的转换模式格式化日志输出,或者如果没有指定任何转换模式,就使用默认的转化模式格式。

 

如果使用PatternLayout布局就要指定的打印信息的具体格式

log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n

参数清单
参数说明
[QC]是log信息的开头,可以为任意字符,例如项目简称。
%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平台为"/r/n",Unix平台为"/n"输出日志信息换行可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:
%20指定输出项最小的宽度是20,如果小于20的话,默认的情况下右对齐。
%-20指定输出项最小的宽度是20,如果小于20的话,默认的情况下左对齐。"-"号指定左对齐。
%.30指定输出项最大的宽度是30,如果大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。
%20.30如果输出项宽度小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边开始截取字符。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值