2009-11-27 4 views
0

J'ai vu beaucoup de questions sur les sujets ci-dessus, mais aucun de ceux qui traitent de ce sujet. J'essaie d'utiliser log4j pour se connecter à un fichier personnalisé dans le répertoire $ CATALINA_BASE/logs /. J'ai configuré le fichier log4j.xml et l'ai copié dans le répertoire $ CATALINA_BASE/lib /.log4j, les journaux de FileAppender et tomcat6 question

J'utilise les lignes suivantes pour créer l'enregistreur -

PatternLayout layout = new PatternLayout(); FileAppender appender = nouveau FileAppender ("filename.txt");

C'est là mon problème. Comment faire pour que FileAppender prenne le nom de fichier que j'ai configuré dans le fichier log4j.xml?

J'espérais qu'il choisira automatiquement, mais il n'y a pas consructor pour FileAppender qui ne prendra pas un nom de fichier.

Dois-je lire le log4j.xml pour obtenir le nom du fichier? Si oui, pourquoi dans le monde ai-je besoin de définir cette propriété dans le xml du tout?

Toute aide serait grandement appréciée.

Merci, - Vas

Répondre

1

Hmm ... pourquoi vous créez un FileAppender dans le code? Créez simplement un enregistreur à l'aide de LoggerFactory en spécifiant la chaîne (généralement au format com.xxx.yyy que vous avez configuré dans le fichier XML/properties de log4j) et démarrez la journalisation. Assurez-vous que l'enregistreur est configuré pour utiliser l'implémentation de FileAppender (Daily ou RollingFile) dans le fichier de configuration et que vous êtes prêt à partir.

+0

Merci pour l'information. Ce que vous avez dit est logique. J'ai essayé cela et maintenant je vois une tentative de connexion dans le fichier mais le message lui-même n'est pas connecté. La raison pour laquelle je remarque une tentative de connexion est j'utilise un PatternLayout avec un ConversionPattern de <%d > Ainsi, une nouvelle date est ajoutée au fichier, mais les données lui-même est perdu. Avez-vous déjà vu ce comportement? Merci, -Vas – user220201

+0

Voici mon fichier log4j.xml - \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t user220201

Questions connexes