slf4j+log4j使用

来源:互联网 发布:mac office 2011 威锋 编辑:程序博客网 时间:2024/06/07 16:38

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, ERRLOGlog4j.appender.encoding=UTF-8#log to consolelog4j.appender.STDOUT=org.apache.log4j.ConsoleAppenderlog4j.appender.STDOUT.Threshold=TRACElog4j.appender.STDOUT.layout=org.apache.log4j.PatternLayoutlog4j.appender.STDOUT.layout.ConversionPattern=[%d][%-5p] (%F:%L) - %m%n#log to filelog4j.appender.ERRLOG=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.ERRLOG.Threshold=TRACElog4j.appender.ERRLOG.layout=org.apache.log4j.PatternLayoutlog4j.appender.ERRLOG.layout.ConversionPattern=[%d][%-5p] (%F:%L) - %m%nlog4j.appender.ERRLOG.file=logs/error.loglog4j.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
原创粉丝点击