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());