2010-12-09 7 views
15

Je travaille sur un projet utilisant Log4J via Commons.Recherche du fichier journal Log4J

J'essaie de trouver le chemin d'accès au fichier journal, mais je ne trouve pas une méthode appropriée qui retournera le chemin du fichier journal à partir de l'enregistreur.

Quelqu'un a déjà essayé cela?

Répondre

27

Vous devez obtenir tous les appender à partir de l'enregistreur racine, puis obtenir le nom du fichier journal.

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

Peut-être que vous pourriez essayer d'obtenir les Appenders?

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

Si vous avez un FileAppender, vous pouvez obtenir le fichier ...

Quelque chose comme ça:

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

Hope this helps!

+0

J'ai mis à jour votre code pour le rendre java-centrique, :) –

+1

Vous devez utiliser l'enregistreur racine pour obtenir les appenders. 'Logger.getRootLogger(). GetAllAppenders();' – dogbane

+0

@The Elite Gentleman Merci, semble plus agréable maintenant :) – LaGrandMere

Questions connexes