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

发布于 2021-11-28 07:54:56 字数 1251 浏览 849 评论 20

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(20

醉生梦死 2021-12-02 10:55:18

自己顶啊,为什么引入的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");
	}
}

 ### u8BBEu7F6E###
log4j.rootLogger = debug,stdout,D,E

### u8F93u51FAu4FE1u606Fu5230u63A7u5236u62AC ###
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

### u8F93u51FADEBUG u7EA7u522Bu4EE5u4E0Au7684u65E5u5FD7u5230=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

### u8F93u51FAERROR u7EA7u522Bu4EE5u4E0Au7684u65E5u5FD7u5230=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就可以

不再见 2021-12-02 10:55:18

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

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

旧伤慢歌 2021-12-02 10:55:17

回复
当然不是

秉烛思 2021-12-02 10:55:15

回复
你要是搞不懂,建议先写成绝对路径试试看

不乱于心 2021-12-02 10:55:14

我换了绝对路径还是不行

明媚如初 2021-12-02 10:55:13

我如果引用的是import org.apache.log4j.Logger;就可以写出日志文件。引用 org.slf4j.Logger; 就不行

各自安好 2021-12-02 10:55:12

回复
大神在吗? 我按照教程没有导入myeclispe以外的包的时候,导入org.slf4j.Logger;类是不报错的。可就是不能输出到文件。后来我查了一下,这个类在myeclispe自带的bean-validator.jar 这个包里。另外一个导入的类org.slf4j.LoggerFactory;也在这个包里。难道这个包里的这两个类不能用?

灵芸 2021-12-02 10:55:10

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

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

眼眸 2021-12-02 10:55:09

为什么啊 自己顶

羁拥 2021-12-02 10:55:08

我就是按照一个几乎一样的文章写得。

坏尐絯 2021-12-02 10:55:04

回复
可以哦,神马环境?在工程的同等目录的logs目录下可以的。

丢了幸福的猪 2021-12-02 10:54:51

回复
很奇怪,进展请看楼下

绝影如岚 2021-12-02 10:54:48

回复
引入的slf4j相关的两个类 都是myeclispe自带的bean-validator.jar中的。包名和网上看的教程完全一样。引入没有报错,执行也可以打印在控制台。就是不能输出日志文件。用log4就可以输出到文件。可是我想用slf4j,因为它有占位符

岁吢 2021-12-02 10:54:48

回复
jar文件都是最新版么?

草莓味的萝莉 2021-12-02 10:53:25

回复
呵呵,把bean…备份一下,解压出来,把slf*去掉再打下包,要不就是刚才说的使用同一时期的版本

小情绪 2021-12-02 10:40:59

回复
怎么能知道是同一时期的版本呢?

疾风者 2021-12-02 09:40:34

回复
我只有个笨方法,用rar查看现在jar里class的生成时间,再查找这时间前后的jar

眼泪淡了忧伤 2021-12-02 09:12:23

回复
额,谢谢

噩梦成真你也成魔 2021-12-01 06:33:25

回复
这么麻烦,我只能放弃使用slf4J了就用log4J吧

沙与沫 2021-11-28 18:54:59

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文