log4j使用总结
来源:互联网 发布:ajax javascript区别 编辑:程序博客网 时间:2024/06/05 22:41
一、log4j引入三部曲
1)引入import jar包(最新1.2.17) http://logging.apache.org/2)新建配置文件log4j.properties,置于project根目录下
3)代码引入:
Logger logger = Logger.getLogger(TestLog4j. class );
logger.debug( " debug " );
logger.error( " error " );
二、log4j.properties配置文件说明:
Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,
它可接key=value格式的设置或xml格式的设置信息。通过配置,
可以创建出Log4J的运行环境。
log4j.properties配置文件范例:
log4j.rootLogger=ERROR,stdout,stderr#log4j.logger.syslog=stdout######################### logger ############################### stdout is set to be a ConsoleAppender.log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.conversionPattern=%d [%t] %-5p %c - %m%n# stderr is set to be a FileAppender.log4j.appender.stderr=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.stderr.File=log/stderr.loglog4j.appender.stderr.Append=truelog4j.appender.stderr.layout=org.apache.log4j.PatternLayoutlog4j.appender.stderr.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %-5p %c %x - %m%nlog4j.logger.task=INFO,tasklog4j.appender.task=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.task.Threshold = INFOlog4j.appender.task.File=log/pcbaby/task.loglog4j.appender.task.DatePattern = '.'yyyy-MM-ddlog4j.appender.task.Append=truelog4j.appender.task.layout=org.apache.log4j.PatternLayoutlog4j.appender.task.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %-5p %c %x - %m%nlog4j.additivity.task=false
1、配置说明
#配置根Logger
log4j.rootLogger = [ level ] , appenderName1 , appenderName2 , …
#配置日志信息输出目的地Appender
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
…
log4j.appender.appenderName.optionN = valueN
注意:
A、第一行appenderName为自定义appderName,在log4j.rootLogger设置中使用;
value可设值如下:
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
B、第二行开始option为输出选项,如DailyRollingFileAppender选项:
Threshold=WARN 指定日志信息的最低输出级别,默认为DEBUG。
ImmediateFlush=true 表示所有消息都会被立即输出,设为false则不输出,默认值是true。
Append=false true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认true。
File=D:/logs/logging.log4j 指定当前消息输出到logging.log4j文件中。
DatePattern='.'yyyy-MM 每月滚动一次日志文件,即每月产生一个新的日志文件。
当前月的日志文件名为logging.log4j,前一个月的日志文件名为logging.log4j.yyyy-MM。
另外,也可以指定按周、天、时、分等来滚动日志文件,对应的格式如下:
1)'.'yyyy-MM:每月
2)'.'yyyy-ww:每周
3)'.'yyyy-MM-dd:每天
4)'.'yyyy-MM-dd-a:每天两次
5)'.'yyyy-MM-dd-HH:每小时
6)'.'yyyy-MM-dd-HH-mm:每分钟
#配置日志信息的格式(布局)
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
…
log4j.appender.appenderName.layout.optionN = valueN
注意:
A、第一行Layout为日志输出格式,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
B、第二行开始option为输出格式选项,Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%m 输出代码中指定的消息
%n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日 22 : 10 : 28 , 921
2、日志记录器(Logger)的可用级别(优先级从低到高),共有5级:
DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的。
INFO level表明 消息在粗粒度级别上突出强调应用程序的运行过程。
WARN level表明会出现潜在错误的情形。
ERROR level指出虽然发生错误事件,但仍然不影响系统的继续运行。
FATAL level指出每个严重的错误事件将会导致应用程序的退出。
PS:Log4j建议只使用前四个级别
3、自定义appenderName变量名,如范例中第三段task定时任务的配置,代码中以字符串形式获取:
protected Log log = LogFactory.getLog("task");
注意:
log4j.additivity.task=false
子Logger 是否继承 父Logger 的 输出源(appender) 的标志。
- 【Log4j】Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结(转载)
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- Log4j使用总结
- hibernate缓存
- Java中entity(实体类)的写法规范
- eclipse 快捷键
- [iOS] UILabel调整行间距方法
- No grammar constraints (DTD or XML Schema) referenced in the document. java项目xml文件报错或者出现警告
- log4j使用总结
- sizeof 和strlen()的区别
- 如何在真机上调试Android应用程序
- Java单机版五子棋
- 剑指offer 面试题50 树中两个节点的最低公共祖先
- ACM刷题之HDU————How Many Trees?
- 【技术架构】单点系统架构的可用性与性能优化
- setTimeout定时工具
- 自定义控件从xml获取属性值的优雅写法