先清楚俩概念:
Logger.getLogger()是使用log4j的方式记录日志;LogFactory.getLog()则来自apache的common-logging包。
common-logging的使用:
1、将common-logging.jar包放在java工程的build path中,即可。
2、示例程序:
/**
*直接在控制台打印
*/
public class LogTest {
public static Log log=LogFactory.getLog(LogTest.class);
public static void test() {
log.debug("111");
log.info("125");
log.warn("485");
log.error("error");
}
public static void main(String[] args) {
LogTest.test();
}
}
打印结果如下:
2013-6-28 10:31:06 LogTest test
信息: 125
2013-6-28 10:31:06 LogTest test
警告: 485
2013-6-28 10:31:06 LogTest test
严重: error
log4j的使用:
下载地址:
http://www.findjar.com/jar/log4j/log4j/1.2.11/log4j-1.2.11.jar.html
1、将log4j.jar包放在java工程的build path中。
2、在工程根目录下添加
log4j.properties文件,并配置,配置可参考网上各种资料,给一个简单的例子:
### set log levels ###
log4j.rootLogger = debug,stdout,D
### 输出到控制台 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{1}:%L - %m%n
### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.FileAppender
log4j.appender.D.File = logs/log.log
log4j.appender.D.Append = true
###指定日志消息的输出最低层次,输出DEBUG级别以上的日志###
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
3、新建类 Log4jTest.java,代码如下:
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class Log4jTest {
public static void main(String args[]) {
PropertyConfigurator.configure("log4j.properties");
Logger logger = Logger.getLogger(Log4jTest.class );
logger.debug( " debug " );
logger.error( " error " );
logger.info("info message");
}
}
4、查看结果,在文件夹logs下面的log.log中有如下信息:
2013-06-28 16:05:47 [ main:0 ] - [ DEBUG ] debug
2013-06-28 16:05:47 [ main:2 ] - [ ERROR ] error
2013-06-28 16:05:47 [ main:3 ] - [ INFO ] info message
在使用
log4j.properties文件中的内容报错误:
log4j:ERROR Category option " 1 " not a decimal integer.解决方案如下:
log4j.properties 的配置文件中:
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n
把{1}中的空格去掉。
资料:
http://my.oschina.net/zwtlong/blog/99715
http://cat0425.popo.blog.163.com/blog/static/7959643920100125014792/
http://www.cnblogs.com/snowberg/archive/2012/02/18/2468544.html
【推荐】
http://www.cnblogs.com/huc87/archive/2010/06/29/1767347.html
log4j切换到logback: http://www.cnblogs.com/FlameRen/archive/2013/04/15/3021753.html