0

私のロガークラスで

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

プロパティファイルからログレベルを読み取り、ここでロガークラスと照合できるようにしたいので、アプリケーションはログレベルを使用してログをデータベースに書き込む必要があります。
NOLOG->
デバッグ->エラー、警告、情報、デバッグなどが発生した場合、ログは発生しません。

ログメッセージをdbに書き込み、プロパティファイルからログレベルを読み取ることができます。

それをロガークラスの列挙型と一致させてから、ログメッセージを階層に表示するにはどうすればよいですか?

4

2 に答える 2

0

if-elifステートメントを持つことができます。列挙型からint値を取得するには、次のようにします。

Logleve.NOLOG.ordinal()

プロパティファイルからログレベルを読み取り、ここで列挙型ファイルで比較してから、ロガープロパティをそのレベルに更新します。

また、Javaの組み込みロガーまたはlog4jを使用していない理由はありますか?

于 2013-01-05T01:07:23.757 に答える
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());
于 2013-01-05T02:19:22.953 に答える