gpt4 book ai didi

log4j2 - 使用 log4j2 进行公共(public)日志记录

转载 作者:行者123 更新时间:2023-12-04 22:42:36 25 4
gpt4 key购买 nike

我正在使用带有公共(public)日志记录的 log4j 1.2。现在我正在尝试将其升级到 log4j2。
但是如何使用 log4j2 和 commons-logging 来初始化 log4j2。

我尝试以以下方式初始化公共(public)日志记录。它工作正常

**Statement1**: static Log log = new Log4JLogger(Logger.getLogger(Example.class));
**Statement2**:log.debug("debug statement");

在这里,我使用 org.apache.commons.logging.Log 类型的对象,使用 org.apache.log4j.Logger 的对象初始化.( org.apache.log4j.Logger 是 log4j 1.2 中的类,从 log4j2 更改为 org.apache.logging.log4j.Logger )

现在我升级到 log4j2 后, 声明1 不能用作 Log4JLogger()构造函数需要 org.apache.log4j.Logger 类型的参数类型。

那么,如何在 Log4j2 中使用公共(public)日志记录呢?

最佳答案

您需要添加 log4j-jcl-2.7依赖于你的类路径。

请参阅“which jars" question in the FAQ

在您的代码中,使用

import org.apache.commons.logging.Log; 
import org.apache.commons.logging.LogFactory;

public class MyClass {
private Log log = LogFactory.getLog(MyClass.class);
...

您不应明确使用 Log4JLogger .

此外,请注意 Log4j2 与 Log4j 1 的不同之处在于它在其 API 和实现之间提供了清晰的分离。因此,与 10 年前使用 Log4j 1 相比,现在使用包装库的好处要少得多。

考虑直接使用 Log4j2 API:它在 API 和实现之间提供了相同的分离,并且比 commons logging 或 slf4j 功能更丰富。

请注意,直接使用 Log4j2 API 几乎没有风险: log4j-to-slf4j-2.x如果您改变主意并决定将 Logback(或其他 slf4j 实现)与直接使用 Log4j2 API 的应用程序一起使用,模块总是在那里。

关于log4j2 - 使用 log4j2 进行公共(public)日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41462181/

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