使用slf4j记录日志

1.添加maven依赖:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId> //日志桥接插件
    <version>1.7.21</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.5</version>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.4</version>
</dependency>

2.定义日志参数配置文件:log4j.properties(默认的文件名,不要改文件名)

### 定义日志级别 ###
#log4j.rootLogger= DEBUG, stdout
#log4j.rootLogger= ERROR, E
log4j.rootLogger= WARN, W, E

### 输出到控制台 ###
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.DailyRollingFileAppender
## 异常日志文件名,对于java项目,下面路径会在项目根目录下创建logs目录写入日志
log4j.appender.D.File = ./logs/cmis/debug.log
log4j.appender.D.Append = true
## 输出DEBUG级别以上的日志info
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.DatePattern= '.'yyyy-MM-dd
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

### 输出到日志文件 ###
log4j.appender.W = org.apache.log4j.DailyRollingFileAppender
## 异常日志文件名,对于java项目,下面路径会在项目根目录下创建logs目录写入日志
log4j.appender.W.File = ./logs/cmis/warn.log
log4j.appender.W.Append = true
## 输出DEBUG级别以上的日志info
log4j.appender.W.Threshold = WARN
log4j.appender.W.DatePattern= '.'yyyy-MM-dd
log4j.appender.W.layout = org.apache.log4j.PatternLayout
log4j.appender.W.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

### 保存异常信息到单独文件 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
## 异常日志文件名,对于java项目,下面路径会在项目根目录下创建logs目录写入日志
log4j.appender.E.File = ./logs/cmis/error.log
log4j.appender.E.Append = true
## 只输出ERROR级别以上的日志!!!
log4j.appender.E.Threshold = ERROR
log4j.appender.E.DatePattern= '.'yyyy-MM-dd
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

3.使用

public class LoginController {
    private static final Logger logger = LoggerFactory.getLogger(LoginController.class);

    public void testLog() {
        //级别依次升高,低级别会包含高级别
        logger.debug("this is debug info");
        logger.info("this is info info");
        logger.warn("this is warn info");
        logger.error("this is error info");

    }
}

4.相关知识

log4j提供的Appender(指定日志输出的目的地)

org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

log4j提供的Layout

org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下: 

  %m 输出代码中指定的消息
  %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
  %r 输出自应用启动到输出该log信息耗费的毫秒数
  %c 输出所属的类目,通常就是所在类的全名
  %t 输出产生该日志事件的线程名
  %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
  %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2007年08月18日 23:13:28,921
  %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:TestlogDemo.main(TestLog4.java:30)

 

这里有一篇博文也可进行参考:http://www.cnblogs.com/tankaixiong/archive/2013/04/03/2997589.html

转载于:https://my.oschina.net/kevin2kelly/blog/861273

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值