How slf4j works? No log getting created(Slf4j是如何工作的?未创建任何日志)
问题描述
我用Java 1.6编写了以下代码:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static Logger log = LoggerFactory.getLogger(myfile.class);
现在,我将slf4j-api-1.6.4.jar&;slf4j-Simple-1.6.4.jar放在类路径中,代码编译得很好,但它将所有信息记录在哪里?
我有log.info("test");但它没有创建任何日志文件。我尝试使用以下内容创建log4j.Properties:
log4j.appender.stdout=org.apache.log4j.RollingFileAppender
log4j.appender.stdout.File=/var/abc.log
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{dd-MMM-yyyy HH:mm:ss}]%6p %c{1}:%L - %m%n
log4j.appender.stdout.MaxFileSize=50000KB
log4j.appender.stdout.MaxBackupIndex=200
log4j.rootLogger=info, stdout
但它不工作,我知道上面的文件是log4j所必需的,但slf4j是如何工作的?我是否需要创建任何类似于log4j的属性文件??如果是,我需要把它放在哪里?
谢谢!
推荐答案
SLF4J只是一个门面,让您可以轻松切换不同的日志框架。所有使用SLF4J API的日志调用都将委托给底层的日志框架。
您不必为SLF4J创建任何属性文件。您所需要做的就是使用与您的日志框架匹配的正确"SLF4J绑定"JAR,以便将SLF4J API的所有日志调用委托给底层日志框架。下图显示了SLF4J、"SLF4J绑定"和底层日志记录框架之间的关系slf4j-simple-1.6.4.jar
将所有事件委托给System.err,但不委托给log4j API。因此,您应该改用slf4j-log4j12-1.6.4.jar
。
总而言之,您应该使用以下JAR:
- slf4j-api-1.6.4.jar
- slf4j-log4j12-1.6.4.jar
- log4j-1.2.16.jar
参考资料
- SLF4J user manual
这篇关于Slf4j是如何工作的?未创建任何日志的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Slf4j是如何工作的?未创建任何日志
基础教程推荐
- 在螺旋中写一个字符串 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01