Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将属性文件中的日志级别与为日志级别设置的枚举匹配,并根据层次结构显示日志_Java_Logging_Enums - Fatal编程技术网

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

Java 将属性文件中的日志级别与为日志级别设置的枚举匹配,并根据层次结构显示日志,java,logging,enums,Java,Logging,Enums,在我的课上 public enum LogLevel { NOLOG("6") , ERROR("5"), WARN("4"), INFO("3"), DEBUG("2"), TRACE("1") ;} 我希望能够从属性文件中读取日志级别并在logger类中匹配它,我的应用程序应该使用日志级别将日志写入db。 假设它在NOLOG->没有日志记录发生 如果出现调试-->错误、警告、信息和调试等 我能够将日志消息写入数据库,并从属性文件读取日志级别 如何将其与我的logger类中的枚举相匹

在我的课上

public enum LogLevel {
    NOLOG("6") , ERROR("5"), WARN("4"), INFO("3"), DEBUG("2"), TRACE("1") ;}
我希望能够从属性文件中读取日志级别并在logger类中匹配它,我的应用程序应该使用日志级别将日志写入db。
假设它在NOLOG->没有日志记录发生
如果出现调试-->错误、警告、信息和调试等

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


如何将其与我的logger类中的枚举相匹配,然后在层次结构上显示日志消息?

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

Logleve.NOLOG.ordinal()
从属性文件中读取日志级别,在枚举文件中比较它,然后将记录器属性更新到该级别


另外,您不使用Java内置logger或log4j有什么原因吗?

您可以添加如下静态工厂方法:

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对象:

LogLevel level = LogLevel.levelOf(somePropertyObject.getIntValue());