0

在我的记录器类

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

我希望能够从属性文件中读取日志级别并在 logger 类中进行匹配,并且我的应用程序应该使用 loglevels 将日志写入数据库。
假设它在 NOLOG ->
如果它的 Debug -> Error,Warn,Info 和 Debug 发生等等,则不会发生日志记录。

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

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

4

2 回答 2

0

你可以有 if-elif 语句。您可以通过执行从枚举中获取 int 值

Logleve.NOLOG.ordinal()

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

另外,您不使用 Java 的内置记录器或 log4j 是否有原因?

于 2013-01-05T01:07:23.757 回答
0

您可以像这样添加静态工厂方法:

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());
于 2013-01-05T02:19:22.953 回答