首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将属性文件中的日志级别与Enum设置为日志级别进行匹配,并根据层次结构显示日志

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

Stack Overflow用户
提问于 2013-01-05 00:08:37
回答 2查看 1.6K关注 0票数 0

在我的伐木课上

代码语言:javascript
代码运行次数:0
运行
复制
public enum LogLevel {
    NOLOG("6") , ERROR("5"), WARN("4"), INFO("3"), DEBUG("2"), TRACE("1") ;}

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

假设其在NOLOG ->中不发生日志记录

如果它的调试->错误,警告,信息和调试发生等等。

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-05 02:19:22

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

代码语言:javascript
代码运行次数: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对象:

代码语言:javascript
代码运行次数:0
运行
复制
LogLevel level = LogLevel.levelOf(somePropertyObject.getIntValue());
票数 0
EN

Stack Overflow用户

发布于 2013-01-05 01:07:23

你可以有if-elif语句。可以从枚举中获取int值,方法是

代码语言:javascript
代码运行次数:0
运行
复制
Logleve.NOLOG.ordinal()

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14167032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档