我在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的任何属性文件?如果是这样,我需要把它放在哪里?
谢谢!
答案 0 :(得分:37)
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
代替。
总结一下,您应该使用以下罐子:
<强>参考强>
答案 1 :(得分:1)
SLF4J只是一个日志记录抽象 - 它本身不会写任何日志。使用Logback - 它本地实现SLF4J,由编写SLF4J和log4j的同一个人编写。 SLF4J和Logback是一个很棒的框架 - 我们喜欢SLF4J如何将其他框架(JUL,Commons Logging,log4j)连接到我们选择的框架(即Logback)。
答案 2 :(得分:0)
我用过slf4j-api(jar)。我用logback-classic替换了依赖(jar)logback-core,然后开始记录。