sf4j-log4j日志系统搭建

本文介绍如何在Java项目中集成SLF4J与Log4J进行日志记录。首先概述了SLF4J与Log4J的功能区别,接着详细说明了所需JAR文件的准备过程、配置文件log4j.properties的创建方法及测试类的编写步骤。

sf4j-log4j日志系统搭建

1 驱动和桥接

  • log4j是一个日志系统,提供了具体的实现
    slf4j是一个日志系统的封装,对外提供统一的API,不提供实现,类似于jdbc。

  • 使用slf4j需要下载
    slf4j-api-x.x.x.jar它提供对外一致的API接口,其本身不提供日志实现。
    假设我们选择log4j作为我们的日志实现,需要下载
    log4j-x.x.x.jar
    如果想把slf4j绑定log4j,则需要下载slf4j对log4j的相应”驱动”。
    slf4j-log4j12-x.x.x.jar
    这样就可以使用slf4j提供的API,用log4j实现打日志了。
    所谓驱动,就是实现了slf4j的一些接口,用你喜欢的日志系统打日志。
    slf4j还支持好多日志系统,并提供了相应的“驱动”包

配置sf4j+log4j日志系统

1 新建java project项目
2 准备jar文件
  • log4j-1.2.17.jar
  • slf4j-api-1.7.21.jar
  • slf4j-log4j12-1.7.9.jar

下载请点击这里

3 新建log4j.properties文件
  • log4j默认配置文件为classpath下的log4j.properties,即src文件夹下
  • 也可以新建在project根目录下,在使用前通过下面的代码配置
PropertyConfigurator.configure("log4j.properties");
    log4j.rootLogger=info, ServerDailyRollingFile, stdout
    #file output
    log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender 
    log4j.appender.ServerDailyRollingFile.DatePattern='.'yyyy-MM-dd 
    log4j.appender.ServerDailyRollingFile.File=logs/notify-subscription.log 
    log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout 
    log4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d - %m%n 
    log4j.appender.ServerDailyRollingFile.Append=true
    #console output
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} %p [%c] %m%n
4 新建测试类
package test;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.slf4j.LoggerFactory;

public class Test {

    public static void main(String[] args) {
        //如果log4j.properties放在src文件夹下,则不用下面这句话
        PropertyConfigurator.configure("log4j.properties");
        Logger logger = Logger.getLogger(Test.class);
        logger.info("info");
        logger.error("error");
        logger.warn("warnning");
        logger.trace("trace");
        org.slf4j.Logger logger2 = LoggerFactory.getLogger(Test.class);
        logger2.info("debugenabled?"+   logger2.isDebugEnabled());
        logger2.debug("debug");
        logger2.warn("warn");

    }

}
5 输出结果是
  • console控制台输出
2016-10-13 16:42:43 INFO [test.Test] info
2016-10-13 16:42:43 ERROR [test.Test] error
2016-10-13 16:42:43 WARN [test.Test] warnning
2016-10-13 16:42:43 INFO [test.Test] debugenabled?false
2016-10-13 16:42:43 WARN [test.Test] warn
  • 文件输出

日志文件在logs文件夹下的notify-subscription.log文件中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值