在我的伐木课上
public enum LogLevel {
NOLOG("6") , ERROR("5"), WARN("4"), INFO("3"), DEBUG("2"), TRACE("1") ;}
我希望能够从属性文件中读取日志级别,并在记录器类中匹配它,我的应用程序应该使用日志级别将日志写入数据库。
假设其在NOLOG ->中不发生日志记录
如果它的调试->错误,警告,信息和调试发生等等。
我能够将日志消息写入数据库,并从属性文件中读取日志级别。
如何将其与我的记录器类中的枚举匹配,然后在层次结构上显示日志消息?
发布于 2013-01-05 02:19:22
您可以添加这样的静态工厂方法:
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-05 01:07:23
你可以有if-elif语句。可以从枚举中获取int值,方法是
Logleve.NOLOG.ordinal()
从属性文件中读取日志级别,将其在枚举文件中进行比较,然后将记录器属性更新为该级别。
另外,你没有使用Java内置的记录器或log4j有什么原因吗?
https://stackoverflow.com/questions/14167032
复制相似问题