相关疑难解决方法(0)

如果我们将它与slf4j api一起使用,我们可以使用log4j2的所有功能吗?

我们已经迁移了所有代码以使用slf4 API来使用通用API,但是现在我们正在考虑从log4j 1.x升级到log4j 2.x. 如果我们使用slf4j API和log4j2作为实现,我们是否能够使用log4j2的所有功能?

java logging log4j slf4j log4j2

17
推荐指数
1
解决办法
6249
查看次数

使用slf4j和log4j2

我最近一直在尝试log4j2.现在,我想用slf4j进行测试,并想知道如果我用log4j2尝试slf4j,log4j2中的所有功能(例如,通过disruptor的异步记录)是否可用.我曾尝试加入SLF4J jar文件和log4j2和破坏者的JAR文件到测试项目(我加了log4j的-SLF4J罐子,但不能完全确定其是否只是针对log4j的或log4j2为好).当我使用log4j2时,我可以将语句注销到日志文件中.当我尝试SLF4J,这是行不通的(我不知道如果我的配置或事实SLF4J不设置与log4js破坏者记录工作?任何建议将受到欢迎.我会更新更多的信息后,并示例代码也是如此.

java logging log4j slf4j log4j2

12
推荐指数
1
解决办法
1万
查看次数

在具有许多传递依赖项的应用程序中实现 SLF4J

我正在重构具有大量依赖项的 Java Web 应用程序。我想使用slf4j, withlog4j2作为底层日志记录实现。但是,该应用程序包含一些 Spring 依赖项。Spring 使用 JCL(Jakarta common logging)进行日志记录,因此它commons-logging作为传递依赖项引入。这是一个潜在的问题,因为这意味着它slf4j可能会jcl作为日志记录实现,并且 Spring 可能会以一种不受欢迎的方式在某处进行日志记录。

slf4j 文档中,解决方案是首先commons-logging通过从 POM 中排除它来关闭它,然后使用jcl-over-slf4j来替换commons-logging. 当然,jcl-over-slf4j会将 Spring 之前进行的所有日志记录调用路由到slf4j.

我试过排除commons-logging,例如

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <exclusions>
        <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)

但是,在检查 Maven 依赖关系树时,commons-logging现在仍然显示为 的依赖项json-lib,该项目具有的另一个依赖项。

很快就很明显,手动排除所有不需要的日志依赖项不会很好地扩展。该slf4j文档继续建议使用提供的范围作为选项:

<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

但是,正如this SO question所讨论的那样,这种方法仍然意味着在测试期间会出现其他日志记录框架。此外,我不清楚此提供的选项是否适用于 的所有版本commons-logging …

java logging slf4j log4j2

5
推荐指数
1
解决办法
116
查看次数

什么是 Spring Boot 入门 Log4J2

嗯,我认为标题描述了这个问题。我知道spring-boot-starter-log4j2如果我想在 spring 中使用 log4j2 作为我的日志框架,我应该使用它。但我的问题是,它与普通的 org.apache.logging.log4j:log4j-api 有什么不同?

查看 的编译时依赖性spring-boot-starter-log4j2,它具有log4j-slf4j2-impl. 这是否意味着它在 log4j2 实现之上使用 SLF4J 接口?我仍然可以使用 SLF4J 中不可用的 log4j2 特定功能吗?

如果上一个问题的答案是否定的,有什么方法可以配置我的依赖项,以便我可以使用所有 log4j2 功能?因为在我阅读了这个问题的答案:Is it值得使用 slf4j 与 log4j2 后,我得出的结论是最好直接编码到 log4j2 API。

谢谢。

spring log4j slf4j log4j2

5
推荐指数
1
解决办法
2734
查看次数

Commons-log with log4j2

我正在使用log4j 1.2和commons-logging.现在我正在尝试将其升级到log4j2.但是如何使用log4j2和commons-logging来初始化log4j2.

我尝试以下面的方式初始化公共登录.它的工作正常

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

这里我使用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进行公共登录?

apache-commons-logging log4j2

4
推荐指数
1
解决办法
5413
查看次数

标签 统计

log4j2 ×5

slf4j ×4

java ×3

log4j ×3

logging ×3

apache-commons-logging ×1

spring ×1