Log4j的使用
来源:互联网 发布:数据库工程师待遇知乎 编辑:程序博客网 时间:2024/06/18 10:24
import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;
今天又偶然用了一下log4j,不免有些生疏。所以贴出来总结一下:
首先Log4j需要准备一个configure文件:log4j.properties
文件格式:
# Configure the log dir and file names heremy.log.dir=./logmy.log.file=my.log# Define the root logger for deployment# This is the default level and appenderlog4j.rootLogger=INFO,my# Global Logging Thresholdlog4j.threshhold=ALL
#这里定义输出文件以及输出的样式## Daily Rolling File Appender for my#log4j.appender.my=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.my.File=${my.log.dir}/${my.log.file}# Rollover at midnightlog4j.appender.my.DatePattern=.yyyy-MM-dd# Output logs above INFO for this appenderlog4j.appender.my.Threshold=INFO log4j.appender.my.layout=org.apache.log4j.PatternLayout# Pattern format: Date LogLevel [ThreadName] LoggerName: LogMessagelog4j.appender.my.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %C: %m%n# Custom Logging levels# Only output ERRORs for other librarieslog4j.logger.org=ERROR# Output logs above INFO for ydrive
log4j.logger.somepackage=INFO
这里需要注意additivity,如果不写,那么就默认继承上面一个appender
log4j.additivity.somepackage.my=falselog4j.logger.somepackage.my=INFO,my
log4j.properties就是这样的格式。上面的意思除了输出文件和输出文件的格式大家基本都是一致的。对于下面怎么添加appender,每个人的写法就有区别了。如果
log4j.logger.somepackage=INFO,my
如果某个类somepackage.my.MyClass要输出log的话,那么在文件里就会输出相同的两行。原因就在于slog4j.logger.somepackage.my=INFO,my
log4j.additivity.somepackage.my=falseomepackage.my不光是要打印自己的log,也要打印somepackage的log.所以才有
log4j.additivity.somepackage.my=false这里就会抹掉sompackage的影响。
另外INFO,my代表输出等级是INFO和my 这个appender输出。至于my appender的定义。其实就是
log4j.appender.my
下面是代码里的写法:
加载log4j.properties很简单:
File log4jFile = new File("log4j.properties");System.out.println("Read log4j.propeties at" + log4jFile.getAbsolutePath());PropertyConfigurator.configureAndWatch(log4jFile.getAbsolutePath());
加载完之后,就可以使用log4j:
首先要import下面两个包
import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;
然后代码里可以这样写:
private static final Log LOG = LogFactory.getLog(MyClass.class);{ LOG.info("print");}
然后你就可以看到
# Configure the log dir and file names heremy.log.dir=./logmy.log.file=my.loglog目录的my.log里有你的print.
有时候,这个my.log很有可能是空的。原因在于还没有到log4j flush的时候,你可以多输出些东西。log4j是异步的输出。所以可能那个my.log是个空白。
- Log4j的使用!
- Log4j的使用
- Log4j的使用
- log4j的第一步使用
- Log4j的使用
- log4j的使用
- Log4j的简单使用
- Log4j的使用
- Log4j的使用
- log4j/log4e的使用
- log4j/log4e的使用
- Log4j 的灵活使用
- log4j/log4e的使用
- log4j的使用
- log4j的使用
- Log4j的使用
- LOG4J的使用- -
- Log4j的使用
- NEFU-4-2-Center Alignment
- iOS App体验设计
- x264_stack_align( x264_slice_write, h )解读
- 给Tomcat,Apache配置gzip压缩(HTTP压缩)功能
- ubuntu 12.10 下安装 jdk 1.6.0-37
- Log4j的使用
- log4j详细配置
- Common Navigator Framework (CNF)
- Android控件之Gallery
- 读一组整数到 vector 对象,计算并输出每对相邻元素的和。如果读入元素个数为奇数,则提示用户最后一个元素没有求和,并输出其值。
- 黑马程序员——java加强学习
- Hibernate分页查询
- ScriptCase开发平台介绍(十一)——容器(Container)应用程序
- datasource控件