1.首先在POM.XML下引入slf4j-log4j依赖包
2.配置log4j.properties文件
# rootLogger参数分别为:根Logger级别,输出器stdout,输出器log
log4j.rootLogger = info,stdout,log
# 输出信息到控制台
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d [%-5p] %l %rms: %m%n
# 输出DEBUG级别以上的日志到D://logs/debug.log
log4j.appender.log = org.apache.log4j.DailyRollingFileAppender
log4j.appender.log.DatePattern = '.'yyyy-MM-dd
log4j.appender.log.File = D://debug.log
log4j.appender.log.Encoding = UTF-8
#log4j.appender.log.Threshold = INFO
log4j.appender.log.layout = org.apache.log4j.PatternLayout
log4j.appender.log.layout.ConversionPattern = %d [%-5p] (%c.%t): %m%n
3.编写一个测试
package com.zhiyou100.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 通常输出日志开销非常大,从上述结果可见,
* SLF4J通过{}作为占位符的方式输出字符串,
* 相比字符串拼接的方式,效率有显著的提升。
* @author Administrator
*
*/
public class LoggerTest {
private static final Logger logger =
LoggerFactory.getLogger(LoggerTest.class);
public static void main(String[] args) {
logger.info("Current Time: {}", System.currentTimeMillis());
logger.info("Current Time: " + System.currentTimeMillis());
logger.info("Current Time: {}", System.currentTimeMillis());
logger.trace("trace log");
logger.warn("warn log");
logger.debug("debug log");
logger.info("info log");
logger.error("error log");
}
}
4.当我们用框架时候往往需要用到日志打印,我们总不可能一直使用3里面的方法吧,这时候我们就需要换一种思维了,有没有简单的方法呢,肯定有的
public class LoggerController implements Serializable{
protected Logger logger = Logger.getLogger(this.getClass());
private static final long serialVersionUID = 6357869213649815390L;
/**
* 得到分页列表的信息
*/
public static void logBefore(Logger logger, String interfaceName){
logger.info("");
logger.info("start");
logger.info(interfaceName);
}
public static void logAfter(Logger logger){
logger.info("end");
logger.info("");
}
}
这里只需要在你想打印日志的类下面,使得这个类继承LoggerController.java,就可以了。在必要的地方添加logBefore方法,在结束的地方调用logAfter方法即可,实现日志信息的连贯性。另外我们日志打印往往在于用户登录,注册,修改,删除的地方进行的,一般用于持久层打印日志信息,当荡机的时候,方便查看是不是数据与数据库进行操作的时候发生的错误或异常,方便事后的排错。