关于slf4j不能输出日志到文件,怎么解决啊?

颖辉小居 发布于 2016/01/06 16:13
阅读 14K+
收藏 1

如何使用英特尔®oneAPI工具实现PyTorch 优化,直播火热报名中>>>

配置文件

### \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🇲🇲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🇲🇲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-1.2.17.jar

引入:import org.apache.log4j.Logger;

package mylog;


import org.apache.log4j.Logger;

public class Logtest {

	private static Logger logger = Logger.getLogger(Logtest.class);

	public static void main(String[] args) {

		 // 记录debug级别的信息
		 logger.debug("This is debug message.");
		 // 记录info级别的信息
		 logger.info("This is info message.");
		 // 记录error级别的信息
		 logger.error("This is error message.");

		

	}
}



可以打印到控制台,也可以传输到文件里

二、导入包

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

引入import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;

package mylog;

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");
	}
}



控制台显示了,可是没有输出到文件。

后来发现引入的类都是jar文件bean-validator中的,这个包在myeclispe自带的EE6 包库里,这个是建项目的时候就带上的,不敢删除怕有不好的后果。

请问该怎么才可以用slf4j输出到日志文件里啊

加载中
0
zigzagroad
zigzagroad
配置中只定义了后面三个Logger,没定义debug的Logger吧?我不确定不定义是不是可以
颖辉小居
颖辉小居
回复 @zigzagroad : 我才刚刚开始学着用这个网上找到 的都是这样的配置文件的。所以我先选择用这个配置文件都明白了再学习xml配置方式
颖辉小居
颖辉小居
同样的配置文件用log4j就可以输出到日志文件,后来找到原因了是引用了bean-validator.jar里面的同包名类。改了jar包的优先引入顺序还是这样。删了bean-validator.jar就可以了。可是删了它项目的其他地方报错了。哎!~
zigzagroad
zigzagroad
建议用XML文件来配置,结构更清晰。
0
颖辉小居
颖辉小居
自己顶:同样的配置文件用log4j就可以输出到日志文件,后来找到原因了是引用了bean-validator.jar里面的同包名类。改了jar包的优先引入顺序还是这样。删了bean-validator.jar就可以了。可是删了它项目的其他地方报错了。哎!~
0
c
chnxan
不要用myeclipse提供的javaee的lib,问题多多,建议你转向使用maven自动化工具构建依赖
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部