当前位置: 首页 > 知识库问答 >
问题:

log4j-2.6.2基本配置程序未配置日志级别

冷涵忍
2023-03-14

我试图通过以下代码实现一个基本配置器

package com.myapp.loggingutilities;

import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;

public class LoggingUtilitiesApplication {
    static Logger currentLogger = Logger.getLogger(LoggingUtilitiesApplication.class);

    public static void main(String[] args) {
        BasicConfigurator.configure();
        currentLogger.debug("Application Started here");
        LoggerUtilityModel bar = new LoggerUtilityModel();
        bar.doIt();
        currentLogger.debug("Application ended");

    }
}

bar的类def是

package com.myapp.loggingutilities;
import org.apache.log4j.Logger;

public class LoggerUtilityModel {
    static Logger modelLogger = Logger.getLogger(LoggerUtilityModel.class);

    public void doIt() {
        modelLogger.debug("OPPS! DID IT AGAIN");
    }

}

我使用的是Log4j2,分布在这里。当我在构建路径中有Log4j-to-slf4j和实现jar时,我总是得到SLF4J桥接错误:

Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.ClassCastException: org.apache.logging.slf4j.SLF4JLoggerContext cannot be cast to org.apache.logging.log4j.core.LoggerContext
    at org.apache.log4j.Logger$PrivateManager.getContext(Logger.java:59)

我认为basicconfigurator应该为DEBUG配置根记录器,因此我的所有日志语句都应该通过(即DEBUG级别或更高级别的任何内容)。但运行应用程序时,在控制台上看不到任何日志消息。我错过了什么?

共有1个答案

阎令
2023-03-14

BasicConfigurator是一个Log4J1.2类,不能用于配置Log4J2。基本上,org.apache.Log4j包中的所有内容都是Log4j 1.2(旧版),org.apache.logging.Log4j命名空间中的所有内容都是针对Log4j 2的。

如果您对log4j2的编程配置感兴趣,请参阅手册页。就我个人而言,我发现新的简化的XML配置文件格式最容易使用。

您看到的行为(仅在错误级别上的控制台日志记录)是Log4J2的“默认配置”,这是它在找不到配置文件并且没有手动配置时所做的。

 类似资料:
  • 本文向大家介绍Java中 log4j日志级别配置详解,包括了Java中 log4j日志级别配置详解的使用技巧和注意事项,需要的朋友参考一下 1.1 前言   说出来真是丢脸,最近被公司派到客户公司面试外包开发岗位,本来准备了什么redis、rabbitMQ、SSM框架的相关面试题以及自己做过的一些项目回顾,信心满满地去面试,结果别人一上来就问到了最近项目使用的日志系统是什么?日志级别是怎么配置的?

  • 我使用log4j(1.2.15)来登录我的应用程序,其中我有两个用于两个不同包(darius.log4j.sql和darius.log4j.net)的文件追加器和一个控制台追加器。其配置如下: 我现在需要的是以编程方式添加一个新的文件appender,如果出现特定的数据组合。我知道如何定义这个新的文件appender(前C),但我不知道如何设置级别和新的appender到第三个包: 其中C是第三个

  • 问题内容: 我目前正在使用log4j的项目中。我正在运行一个测试用例(junit),并希望将日志级别设置为跟踪,以便我可以查看所有值是否正确。在项目中使用日志记录的类包含如下一行: 并使用类似这样的命令进行实际调试 我以前从未使用过log4j,有人知道我该如何仅为测试用例更改日志级别,最好仅通过在Eclipse的运行配置对话框中定义一个参数即可。 问题答案: 使用另一个配置文件 也许您可以指向另一

  • 我的log4j2中有此配置。xml文件: 我将此文件放在src/resources中,并遵循以下指南:guide,但当我运行项目时,出现以下错误:

  • 我在我的项目中进行了强制日志记录,并且我很难抑制我不想要的日志记录语句。 还有,我在使用log4j时看不到这些记录器。我正在尝试学习Logback,因为我已经被指派来评估它作为团队可能的升级。

  • 问题内容: 我还找不到关于如何使用Log4j的XML样式配置文件配置Hibernate日志记录的任何文档。 这是否有可能,或者我是否使用属性样式配置文件来控制Hibernate的日志记录? 如果有人有任何信息或文档链接,我们将不胜感激。 编辑: 只是为了澄清,我正在寻找控制Hibernate的实际XML语法的示例。 EDIT2: 这是我的XML配置文件中的内容。 日志记录工作正常,但是我正在寻找一