8.1 Log4j是否被Slf4j抛弃了? | Java Debug 笔记

989 阅读1分钟

本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看<活动链接>

**提问:Log4j是否被Slf4j抛弃了? **

log4j存在一些类加载问题(其中包括其他问题),在我看来,趋势是从log4j转向slf4j。(Hibernate停止使用第一个来支持后者)

1,这是是真的吗

2,slf4j解决的log4j主要问题是什么?

3, slf4j是自身十分优秀还是有更好的“下一个下一个log4j”行业标准?

回答1:

Slf4j不是真正的日志记录外观。Slf4j不支持其实现程序的许多功能。简而言之,我在下面提到了log4j做对比。

1, Slf4j无法指定用户选择的配置文件,但会强制用户在众多Java根目录之一(每个Jar具有一个根目录加上JVM根目录和类或bin)中使用默认值(log4j.properties或log4j.xml)。如果有两个JAR文件,则很难控制要安全使用哪个文件。

2,Slf4j不能支持所有Log4j级别,例如“fatal”级别。当将大代码从Log4j切换到Slf4j时,需要进行大量的代码更改工作(例如,决定如何重新排列级别)。

3,必须选择两个关键的Jar文件之一(log4j-over-slf4j.jar或slf4j-log4j12.jar)。如果classpath都选择了,将无法正常工作。如果随机选择一个,则会丢失意外的功能(例如,log4j-over-slf4j.jar不支持同一类的多个日志文件;例如,一个用于事件日志,一个用于原始数据日志)。