web-dev-qa-db-ja.com

Log4Jログファイルの検索

Commons経由でLog4Jを使用するプロジェクトに取り組んでいます。

ログファイルへのパスを見つけようとしていますが、ロガーからログファイルのパスを返す適切なメソッドが見つかりません。

誰かがこれを試みたことがありますか?

19
wadesworld

すべてのアペンダーを取得する必要がありますルートロガーから次に、ログファイルの名前を取得します。

    Enumeration e = Logger.getRootLogger().getAllAppenders();
    while ( e.hasMoreElements() ){
      Appender app = (Appender)e.nextElement();
      if ( app instanceof FileAppender ){
        System.out.println("File: " + ((FileAppender)app).getFile());
      }
    }
31
dogbane

たぶんあなたはアペンダーを手に入れようとすることができますか?

Enumeration appenders = logger.getRootLogger().getAllAppenders(); 

FileAppenderをお持ちの場合は、ファイルを取得できます...

そんな感じ :

FileAppender fileAppender = null;
Enumeration appenders = logger.getRootLogger().getAllAppenders(); 
while(appenders.hasMoreElements()) {

    Appender currAppender = (Appender) appenders.nextElement();
    if(currAppender instanceof FileAppender) {
        fileAppender = (FileAppender) currAppender;
    }
}

if(fileAppender != null) {
    logDest = fileAppender.getFile();
    System.out.println("logDest : " + logDest);
}

お役に立てれば !

1
LaGrandMere