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

将属性文件中的日志级别与为日志级别设置的枚举匹配,并根据层次结构显示日志

吕高昂
2023-03-14

在我的课上

public enum LogLevel {
    NOLOG("6") , ERROR("5"), WARN("4"), INFO("3"), DEBUG("2"), TRACE("1") ;}

我希望能够从属性文件中读取日志级别,并在记录器类中匹配它,我的应用程序应该使用loglevels将日志写入数据库。
假设它在NOLOG中-

我能够将日志消息写入数据库,并从属性文件中读取日志级别。

如何将它匹配到我的记录器类中的枚举,然后在层次结构上显示日志消息

共有2个答案

沈弘文
2023-03-14

您可以使用if-elif语句。可以通过执行以下操作从枚举中获取int值

Logleve.NOLOG.ordinal()

从属性文件读取日志级别,在枚举文件中进行比较,然后将记录器属性更新到该级别。

还有,你没有使用Java内置的记录器或log4j有什么原因吗?

赵驰
2023-03-14

您可以添加这样的静态Factory方法:

public enum LogLevel {
    NOLOG("6") , ERROR("5"), WARN("4"), INFO("3"), DEBUG("2"), TRACE("1") ;

    private Integer value;

    LogLevel(Integer value) {
        this.value = value;
    }

    public static LogLevel levelOf(Integer value) {
        for (LogLevel level : LogLevel.values()) {
            if (level.value.equals(value)) {
                return level;
            }
        }
        return null;
    }
}

当从属性文件中获取值时,可以自然地获取LogLevel Object:

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

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

  • 我在spring应用程序中使用log4j2作为我的日志工具。我想为特定的库/包设置不同于根目录的日志级别。例如,我希望< code>org.springframework为INFO,而< code>com.google为WARN。我在< code>log4j2.properties中找到了这个: 我不明白是什么意思?我一直在log4j2文档中找到它,但没有解释那是什么或意味着什么。 如何为特定包添

  • 如何编写一个简单的log4j2.xml文件,将不同级别的日志放入不同的文件中? 例如,我们有错误日志,任何信息日志,我需要将所有错误日志消息推入一个日志文件,所有信息日志消息推入另一个文件。 我怎么做?

  • 我的MBean部署在JBoss上。jboss日志记录级别设置为'info'。现在,当我将我的包的日志级别(java util logger)更改为“fine”(通过设置日志级别以编程方式运行时)时,它不会追加任何logger.fine(“....”)的消息。信息被过滤掉了。 是否有任何方法可以将java util记录器日志级别的更改传播到jboss日志级别?(java util有不同的级别->SE

  • 主要内容:如何设置日志级别?,日志级别如何工作?,Log4j 日志级别示例日志级别用于对日志文件中的信息进行分类。但是它们以非常具体的方式进行分类,即按紧急程度分类。该级别允许您管理以下类型的信息: 您可以在搜索过程中过滤您的日志文件。 您可以管理您记录的信息量。 系统中给出的信息量和类型以及事件日志由配置文件中的 log4j 日志级别设置控制。每条日志消息都以消息级别为前缀。 日志级别是org.apache.log4j.Level类的一个实例。 Log4j 具有以下级