gpt4 book ai didi

log4j - 日志包装器 - log4j

转载 作者:行者123 更新时间:2023-12-01 11:08:11 25 4
gpt4 key购买 nike

我需要做一个包装接口(interface),以便您可以在不同类型的日志记录机制之间切换而无需更改代码。所以我在 Wrapper 类中有自己的 info(String message) 方法,例如:

公共(public)无效信息(对象消息)
{
if ( isInfoEnabled() )
{
logger.info(消息);
}
}

它按预期工作,除了在记录时它不显示我正在记录的类和行,而是来自 Wrapper 类的那些。
你能帮忙吗...

最佳答案

我的建议是使用 Simple Logging Facade for Java (SLF4J)而不是你自己的包装器。从其网站:

The Simple Logging Facade for Java or (SLF4J) serves as a simple facade or abstraction for various logging frameworks, e.g. java.util.logging, log4j and logback, allowing the end user to plug in the desired logging framework at deployment time.



这是 Jakarta Commons Logging (JCL) 的更现代和首选的替代方案。我推荐阅读 this article进行详分割析,但简短的版本是 SLF4J 不会遭受 JCL 观察到的类加载器问题或内存泄漏。 Commons Logging 的作者 admits it .

如果您想知道,SLF4J 是由 Log4J 的作者 Ceki Gülcü 编写的(现在工作于 Logback,Log4J 的继任者)。所以这个人对伐木略知一二,而且“他的”包装器有可能比我的更好。

换句话说,恕我直言,在 2010 年创建一个包装器是没有意义的,因为已经存在一个很好的包装器。

1 请不要使用 Spring 作为反例,Spring 是一个不好的反例(参见 SPR-5327)。

关于log4j - 日志包装器 - log4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3185536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com