首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用log4j2进行共享日志记录

使用log4j2进行共享日志记录
EN

Stack Overflow用户
提问于 2017-01-04 10:59:29
回答 1查看 20.9K关注 0票数 9

我使用的是log4j 1.2和共用日志。现在我正在尝试将它升级到log4j2。但是如何将log4j2与公用日志一起使用来初始化log4j2。

我试图以下面的方式初始化commons。它的工作精细

代码语言:javascript
复制
**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之后,Statement1将无法工作,因为Log4JLogger()构造函数需要org.apache.log4j.Logger类型的参数。

那么,如何在Log4j2中使用呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-04 23:49:31

您需要将log4j-jcl-2.7依赖项添加到类路径中。

看"常见问题中的哪一个罐子问题“。

在您的代码中,使用

代码语言:javascript
复制
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和实现之间实现了相同的分离,并且比公用日志记录或slf4j更富特性。

请注意,直接使用Log4j2 API的风险很小:如果您改变主意,决定在直接使用Log4j2 API的应用程序中使用Logback (或其他slf4j实现),那么log4j-to-slf4j-2.x模块总是存在的。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41462181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档