Log4j 配置详解
来源:互联网 发布:psg1知乎 编辑:程序博客网 时间:2024/06/05 16:43
十一假期之后的第一天班,没什么状态,于是乎总结一下Log4j的用法,基于Log4j 1.2.7版本,如有疏漏还请大家指正!
更详细的说明参见 Log4j官网:http://logging.apache.org/log4j/1.2/
一 log4j 的配置文件
Log4j支持两种配置文件格式,一种是XML 格式的文件,一种是Java properties文件 log4j.properties 文件。
1.1 配置根 Logger
Logger 负责处理日志记录的大部分操作。其语法为:
log4j.rootLogger = [ level ] , appenderName, appenderName, …
其中, level 是日志记录的优先级,分为 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 ALL 或者自定义的级别。 Log4j 建议只使用四个级别,优先级从高到低分别是 ERROR 、 WARN 、 INFO 、 DEBUG 。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了 INFO 级别,只有等于及高于这个级别的才进行处理,则应用程序中所有 DEBUG 级别的日志信息将不被打印出来。 ALL: 打印所有的日志, OFF :关闭所有的日志输出。 appenderName 就是指定日志信息输出到哪个地方。可同时指定多个输出目的地。
1.2 Appender
配置日志信息输出目的地 Appender 负责控制日志记录操作的输出。
其语法为:
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
log4j.appender.appenderName.optionN = valueN
其中, Log4j 提供的 appender 有以下几种:
org.apache.log4j.ConsoleAppender (控制台),
org.apache.log4j.FileAppender (文件),
org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件),
org.apache.log4j.RollingFileAppender (文件大小到达指定尺寸的时候产生一个新的文件),可通过 log4j.appender.R.MaxFileSize=100KB 设置文件大小,还可通过 log4j.appender.R.MaxBackupIndex=1 设置为保存一个备份文件。
org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)
例:
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
定义一个名为 stdout 的输出目的地, ConsoleAppender 为控制台。
1.3 Layout
其中, Log4j 提供的 layout 有以下几种:
org.apache.log4j.HTMLLayout (以 HTML 表格形式布局),
org.apache.log4j.PatternLayout (可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout (包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout (包含日志产生的时间、线程、类别等等信息)
1.4 格式化日志信息
Log4j 可以指定不同的日志信息打印格式,打印参数如下:
%m 输出代码中指定的消息
%p 输出优先级,即 DEBUG , INFO , WARN , ERROR , FATAL
%r 输出自应用启动到输出该 log 信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符, Windows 平台为 “rn” , Unix 平台为 “n”
%d 输出日志时间点的日期或时间,默认格式为 ISO8601 ,也可以在其后指定格式,比如: %d{yyyy MMM dd HH:mm:ss,SSS} ,输出类似: 2014-10-08 11:34:27.501
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
具体可参考PatternLayout
二 log4j示例配置文件
log4j.properties 需在src根目录下,如下图所示:
log4j.properties
log4j.rootLogger=info, stdout#Root Loggerlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=[%-5p %d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] %l [%m]%n#============== Logger D develop environmentlog4j.logger.devLog=info, stdout, Dlog4j.additivity.devLog = falselog4j.appender.D.Append = truelog4j.appender.D.Threshold = INFOlog4j.appender.D=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File=D:/logs/log4j-test-api.loglog4j.appender.D.DatePattern='.'yyyy-MM-ddlog4j.appender.D.layout=org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern=[%-5p %d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] %l [%m]%n#============== Logger P production environment logs log4j.logger.productionLog=error, stdout, Plog4j.additivity.productionLog = falselog4j.appender.P.Append = truelog4j.appender.P.Threshold = ERRORlog4j.appender.P=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.P.File=D:/logs/log4j-test-api.loglog4j.appender.D.DatePattern='.'yyyy-MM-ddlog4j.appender.P.layout=org.apache.log4j.PatternLayoutlog4j.appender.P.layout.ConversionPattern=[%-5p %d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] %l [%m]%n
在代码中使用
package com.ricky.java.junit;import org.apache.log4j.Logger;public class Log4jTest {static Logger mLogger = Logger.getLogger("devLog");/** * @param args */public static void main(String[] args) {mLogger.debug("aaa");mLogger.info("test");}}
0 0
- log4j配置详解配置
- log4j配置详解
- log4j配置详解
- log4j配置详解
- log4j配置详解
- Log4j配置详解
- log4j配置详解
- log4j配置详解
- log4j配置详解
- log4j配置详解
- Log4j配置详解
- log4j配置详解
- log4j配置详解
- log4j配置详解
- Log4J的配置详解
- Log4j配置详解
- Log4j配置详解
- Log4j.properties配置详解
- Tomcat之web应用的部署和网站目录的映射
- linux双机建立信任关系失败的解决方法
- ArcGIS教程:关于设置栅格捕捉选项
- Opencv各个版本的万能头文件
- Windows 64位操作系统安装mysql 绿色版 mysql安装常见问题(系统找不到指定的文件、发生系统错误 1067 进程意外终止)
- Log4j 配置详解
- 源码 反码 补码
- wamp 数据库连接出现错误 #2002
- 45 EL 表达式语言
- BroadcastReceiver之开机自启动程序
- jstl判断list是否为空
- android linker分析
- linux下简单文本处理
- DM8127 Image-tuning tool server thread 源码