slf4j+log4j使用例子

本文介绍SLF4J作为抽象日志接口的优势及其与Log4J的集成使用方法。通过示例代码展示如何配置并输出不同级别的日志信息,包括TRACE、DEBUG、INFO、WARN及ERROR。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

slf4j抽像了一套统一的日志接口,可以很方便的与其他日志框架搭配进行日志输出,通过配置可以灵活的对日志进行过滤,格式控制等,推荐在项目开发中使用,此文主要简述slf4j与log4j的使用。

注意事项

应当避免在项目中直接使用java.util.logging.Logger、log4j等日志框架,否则当变更日志框架时,代码可能需要重构,而如果使用slf4j,只需替换相应的日志接口实现库即可。

slf4j官方地址

https://www.slf4j.org/

log4j官方地址

http://logging.apache.org/log4j/1.2/

下载地址

https://www.slf4j.org/dist/slf4j-1.7.25.zip
http://mirror.bit.edu.cn/apache/logging/log4j/1.2.17/log4j-1.2.17.zip

依赖库

slf4j-api-1.7.25.jar
slf4j-log4j12-1.7.25.jar
log4j-1.2.17.jar

log4j.properties配置

log4j.rootLogger=TRACE, STDOUT, ERRLOG
log4j.appender.encoding=UTF-8

#log to console
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.Threshold=TRACE
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=[%d][%-5p] (%F:%L) - %m%n

#log to file
log4j.appender.ERRLOG=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ERRLOG.Threshold=TRACE
log4j.appender.ERRLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.ERRLOG.layout.ConversionPattern=[%d][%-5p] (%F:%L) - %m%n
log4j.appender.ERRLOG.file=logs/error.log
log4j.appender.ERRLOG.DatePattern=-yyyyMMdd

示例代码

package com.lxl;

import java.net.URL;

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

public class Slf4jDemo {

    public static void main(String[] args) {
        // 如果配置文件名为log4j.properties,且放在类加载路径下,以下两行代码可以不写
        URL url = ClassLoader.getSystemResource("log4j.properties");
        PropertyConfigurator.configure(url);

        Logger logger = LoggerFactory.getLogger(Slf4jDemo.class);
        logger.trace("trace msg");
        logger.debug("debug msg");
        logger.info("info msg");
        logger.warn("warn msg");
        logger.error("error msg");
    }

}

控制台输出

[2017-09-28 17:50:34,244][TRACE] (Slf4jDemo.java:16) - trace msg
[2017-09-28 17:50:34,244][DEBUG] (Slf4jDemo.java:17) - debug msg
[2017-09-28 17:50:34,244][INFO ] (Slf4jDemo.java:18) - info msg
[2017-09-28 17:50:34,244][WARN ] (Slf4jDemo.java:19) - warn msg
[2017-09-28 17:50:34,244][ERROR] (Slf4jDemo.java:20) - error msg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值