简单的使用SLF4J门面和log4j

SLF4J代表Simple Logging Facade for Java。它提供了Java中所有日志框架的简单抽象。因此,它使用户能够使用单个依赖项处理任何日志框架,例如:Log4j,Logback和JUL(java.util.logging)。可以在运行时/部署时迁移到所需的日志记录框架。

每个绑定用于其各自的日志框架。下表列出了SLF4J绑定及其相应的框架。

编号Jar文件日志框架
1 slf4j-nop-x.x.jar 无操作,丢弃所有记录。
2 slf4j-simple-x.x.jar 简单的实现,打印信息和更高的消息,并将所有输出保留到System.err
3 slf4j-jcl-x.x.jar Jakarta Commons Logging框架。
4 slf4j-jdk14-x.x.jar Java.util.logging框架(JUL)。
5 slf4j-log4j12-x.x.jar Log4J框架工作,需要有log4j.jar。

要使SLF4J与slf4l-api-x.x.jar一起工作,需要在项目的类路径中添加所需记录器框架的相应Jar文件(绑定)(设置构建路径)。

要从一个框架切换到另一个框架,需要替换相应的绑定。如果未找到边界,则默认为无操作模式。


一个例子:
依赖的库:
 

 src目录下建立 log4j.properties

 ### u8BBEu7F6E###
log4j.rootLogger = debug,stdout,D,E

### u8F93u51FAu4FE1u606Fu5230u63A7u5236u62AC ###
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 = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

### u8F93u51FADEBUG u7EA7u522Bu4EE5u4E0Au7684u65E5u5FD7u5230=E://logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = E://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG 
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

### u8F93u51FAERROR u7EA7u522Bu4EE5u4E0Au7684u65E5u5FD7u5230=E://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =E://logs/error.log 
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR 
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

测试代码:

//测试日志
    public static void testSlf4j() {
        Logger logger = LoggerFactory.getLogger(Test.class);
        logger.debug("132");
        logger.info("456");
    }
这里如果src目录下没有建立 log4j.properties ,会有警告提示
log4j:WARN No appenders could be found for logger (com.netease.qa.testng.TestngRetry).
log4j:WARN Please initialize the log4j system properly.
 
 
 
 
 
 
 
参考 ; https://www.yiibai.com/slf4j/slf4j_overview.html
 
https://www.cnblogs.com/longronglang/p/6211162.html
 
 
 
原文地址:https://www.cnblogs.com/fps2tao/p/12799447.html