为什么不能用SLF4J打印日志到日志文件中?

颖辉小居 发布于 2016/01/05 10:12
阅读 2K+
收藏 0
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🇲🇲ss} [ %t:%r ] - [ %p ] %m%n

可以打印到控制台就是不能创建并写在日志文件里


加载中
1
如比如比
如比如比
还没解决?调整一下jar文件的顺序啊,myeclipse的话,参照这个http://yehandjava.iteye.com/blog/2069532
颖辉小居
颖辉小居
回复 @茶_壶 : 这么麻烦,我只能放弃使用slf4J了就用log4J吧
颖辉小居
颖辉小居
回复 @茶_壶 : 额,谢谢
如比如比
如比如比
回复 @颖辉小居 : 我只有个笨方法,用rar查看现在jar里class的生成时间,再查找这时间前后的jar
颖辉小居
颖辉小居
回复 @茶_壶 : 怎么能知道是同一时期的版本呢?
如比如比
如比如比
回复 @颖辉小居 : 呵呵,把bean…备份一下,解压出来,把slf*去掉再打下包,要不就是刚才说的使用同一时期的版本
下一页
2
如比如比
如比如比
具体没看,路径或设置什么的都对么?参照http://wk.baidu.com/view/50471b41be1e650e52ea9943?pcf=2#1
颖辉小居
颖辉小居
回复 @茶_壶 : 引入的slf4j相关的两个类 都是myeclispe自带的bean-validator.jar中的。包名和网上看的教程完全一样。引入没有报错,执行也可以打印在控制台。就是不能输出日志文件。用log4就可以输出到文件。可是我想用slf4j,因为它有占位符
如比如比
如比如比
回复 @颖辉小居 : jar文件都是最新版么?
颖辉小居
颖辉小居
回复 @茶_壶 : 很奇怪,进展请看楼下
如比如比
如比如比
回复 @颖辉小居 : 可以哦,神马环境?在工程的同等目录的logs目录下可以的。
颖辉小居
颖辉小居
我就是按照一个几乎一样的文章写得。
1
颖辉小居
颖辉小居
为什么啊 自己顶
1
南湖船老大
南湖船老大

我怀疑是你没找到而已。。。

注意这个文件位置并不是在你项目的根目录下。

颖辉小居
颖辉小居
回复 @南湖船老大 : 大神在吗? 我按照教程没有导入myeclispe以外的包的时候,导入org.slf4j.Logger;类是不报错的。可就是不能输出到文件。后来我查了一下,这个类在myeclispe自带的bean-validator.jar 这个包里。另外一个导入的类org.slf4j.LoggerFactory;也在这个包里。难道这个包里的这两个类不能用?
颖辉小居
颖辉小居
我如果引用的是import org.apache.log4j.Logger;就可以写出日志文件。引用 org.slf4j.Logger; 就不行
颖辉小居
颖辉小居
我换了绝对路径还是不行
南湖船老大
南湖船老大
回复 @颖辉小居 : 你要是搞不懂,建议先写成绝对路径试试看
南湖船老大
南湖船老大
回复 @颖辉小居 : 当然不是
下一页
0
颖辉小居
颖辉小居

自己顶啊,为什么引入的logger 和loggerFactory 都是jar包bean-validator的 

slf4j所需的三个包

slf4j-api-1.6.1.jar+slf4j-log4j12-1.6.1.jar+log4j-1.2.17.jar  

我都放到classpash了。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class TestSlf4j {
	private static final Logger logger = LoggerFactory
			.getLogger(TestSlf4j.class);

	public static void main(String[] args) {
		logger.error("This is error message.");
		logger.info("Hello {}", "SLF4J");
	}
}

 ### \u8BBE\u7F6E###
log4j.rootLogger = debug,stdout,D,E

### \u8F93\u51FA\u4FE1\u606F\u5230\u63A7\u5236\u62AC ###
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

### \u8F93\u51FADEBUG \u7EA7\u522B\u4EE5\u4E0A\u7684\u65E5\u5FD7\u5230=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} %c [ %t:%r ] - [ %p ]  %m%n

### \u8F93\u51FAERROR \u7EA7\u522B\u4EE5\u4E0A\u7684\u65E5\u5FD7\u5230=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 =[%-5p] %d{yyyy-MM-dd HH\:mm\:ss,SSS} method\:%l%n%m%n



为什么只能打印到控制台 不能输出到日志文件啊。直接用log4j就可以

0
颖辉小居
颖辉小居

引用来自“茶_壶”的评论

还没解决?调整一下jar文件的顺序啊,myeclipse的话,参照这个http://yehandjava.iteye.com/blog/2069532

我用跟踪找到所引入的类也是正确的

返回顶部
顶部