2013-01-05 82 views
0

的日誌記錄級別和顯示日誌枚舉集在我的記錄器類文件比賽記錄水平按層次

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

我希望能夠讀取日誌級別從屬性文件和與之相匹配這裏在記錄器類中,我的應用程序應該使用日誌級別將日誌寫入數據庫。
假設它在NOLOG - >沒有記錄發生
如果它的調試 - >錯誤,警告,信息和調試發生等等。

我能夠寫入日誌消息到數據庫並從屬性文件讀取日誌級別。

如何將它與我的記錄器類中的枚舉相匹配,然後在層次結構上顯示日誌消息?

回答

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 level = LogLevel.levelOf(somePropertyObject.getIntValue()); 
0

你可以有if-elif語句。您可以通過執行

Logleve.NOLOG.ordinal() 

讀取日誌級別從屬性文件得到枚舉的int值,它在枚舉文件在這裏進行比較,然後更新記錄屬性這一水平。

此外,有沒有原因你沒有使用Java的內置記錄器或log4j?