为什么不能用SLF4J打印日志到日志文件中?
package mylog; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Logtest { // 首先获得日志记录这个对象 static private Logger logger = LoggerFactory.getLogger(Logtest.class); public static void main(String[] args) { // 记录error信息 logger.error("[info message]"); // 记录info,还可以传入参数 //logger.info("[info message]{},{},{},{}", "abc", false, 123,new Logtest()); // 记录deubg信息 logger.debug("[debug message]"); // 记录trace信息 logger.trace("[trace message]"); //System.out.println("hello world"); } }
Log4j.properties
log4j.rootLogger = debug , D , stdout 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 = %d{ABSOLUTE} %5p %c{1}:%L - %m%n log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = ../logs/error.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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(20)
自己顶啊,为什么引入的logger 和loggerFactory 都是jar包bean-validator的
slf4j所需的三个包
slf4j-api-1.6.1.jar+slf4j-log4j12-1.6.1.jar+log4j-1.2.17.jar
我都放到classpash了。
为什么只能打印到控制台 不能输出到日志文件啊。直接用log4j就可以
引用来自“茶_壶”的评论
还没解决?调整一下jar文件的顺序啊,myeclipse的话,参照这个http://yehandjava.iteye.com/blog/2069532
回复
当然不是
回复
你要是搞不懂,建议先写成绝对路径试试看
我换了绝对路径还是不行
我如果引用的是import org.apache.log4j.Logger;就可以写出日志文件。引用 org.slf4j.Logger; 就不行
回复
大神在吗? 我按照教程没有导入myeclispe以外的包的时候,导入org.slf4j.Logger;类是不报错的。可就是不能输出到文件。后来我查了一下,这个类在myeclispe自带的bean-validator.jar 这个包里。另外一个导入的类org.slf4j.LoggerFactory;也在这个包里。难道这个包里的这两个类不能用?
我怀疑是你没找到而已。。。
注意这个文件位置并不是在你项目的根目录下。
为什么啊 自己顶
我就是按照一个几乎一样的文章写得。
回复
可以哦,神马环境?在工程的同等目录的logs目录下可以的。
回复
很奇怪,进展请看楼下
回复
引入的slf4j相关的两个类 都是myeclispe自带的bean-validator.jar中的。包名和网上看的教程完全一样。引入没有报错,执行也可以打印在控制台。就是不能输出日志文件。用log4就可以输出到文件。可是我想用slf4j,因为它有占位符
回复
jar文件都是最新版么?
回复
呵呵,把bean…备份一下,解压出来,把slf*去掉再打下包,要不就是刚才说的使用同一时期的版本
回复
怎么能知道是同一时期的版本呢?
回复
我只有个笨方法,用rar查看现在jar里class的生成时间,再查找这时间前后的jar
回复
额,谢谢
回复
这么麻烦,我只能放弃使用slf4J了就用log4J吧
还没解决?调整一下jar文件的顺序啊,myeclipse的话,参照这个http://yehandjava.iteye.com/blog/2069532