2012-08-07 8 views
5

En Java, vous pouvez utiliser System.out.println() pour imprimer une ligne vide, mais comment cela fonctionne-t-il avec log4j dans un fichier journal? Là, je veux aussi avoir une ou plusieurs lignes vides dans le fichier journal.Log4J imprime la ligne vide dans le fichier journal

Je lis déjà follwing: log4j how to append blank line

Mais ce n'est pas vraiment utile car avec

logger.debug("\n"); 
logger.debug(""); 

vous n'imprimez pas un message mais d'autres informations comme le temps et ainsi de suite (la mise en page du logger) sont toujours stockés dans le fichier journal. Mais je veux juste avoir une ligne vide totale. Quelqu'un peut-il m'aider s'il vous plaît?

Répondre

8

Log4j n'est pas conçu pour écrire des lignes vides.

Vous ne trouvez pas cette option dans l'enregistreur, car l'enregistreur est indépendant de ses appenders qui écrivent dans un fichier ou sur la console ou quelque chose de différent.

Je pense que vous devez créer votre FileAppender personnalisé qui vérifie le message de journalisation avant l'écriture. Si votre message.equals("\n"); vous ajoutez une ligne vide sans la mise en page en accédant au fichier par le vôtre et passez la journalisation normale avec la mise en page. alors vous pouvez utiliser Logger.debug("\n");

De plus, c'est une mauvaise pratique d'ajouter des lignes vides. Il est similaire à diviser votre message de journal sur plusieurs lignes. Vous voulez tous vos Logmessage dans une ligne chacun, donc ils sont faciles à analyser pour LogViewer-Outils comme chainsaw ou OtrosLogViewer Une exception sont Stacktraces.

2

Créez votre propre appender avec une disposition vide et un enregistreur qui utilise cet appender. Ensuite, écrivez la ligne vide en utilisant ce logger. Veillez à définir l'attribut additivity de logger sur false afin que l'enregistreur racine n'écrive pas le message en utilisant le formatage de ses appenders.

Questions connexes