在我的记录器类
中public enum LogLevel {
NOLOG("6") , ERROR("5"), WARN("4"), INFO("3"), DEBUG("2"), TRACE("1") ;}
我希望能够从属性文件中读取日志级别,并在logger类中将其匹配,我的应用程序应使用loglevels将日志写入db。 假设它在NOLOG中 - >没有记录发生 如果它的调试 - >发生错误,警告,信息和调试等等。
我能够将日志消息写入db并从属性文件中读取日志级别。
如何将其与我的记录器类中的枚举相匹配,然后在层次结构上显示日志消息?
答案 0 :(得分:0)
您可以使用if-elif语句。您可以通过执行
从枚举中获取int值Logleve.NOLOG.ordinal()
从属性文件中读取日志级别,在枚举文件中将其进行比较,然后将logger属性更新为该级别。
另外,您是否有理由不使用Java的内置记录器或log4j?
答案 1 :(得分: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());