2009-10-01 5 views
2

Je ne semble pas recevoir de messages de niveau INFO dans Additions.log ou Deletions.log même si je vois la ligne de journalisation s'exécuter dans le débogueur. Voici mon fichier log4j.properties:log4j: une classe; même niveau; deux fichiers de sortie

log4j.file.home=. 

log4j.rootLogger=INFO, dest1 
log4j.rootCategory=INFO, dest1 
log4j.logger.org.hibernate=ERROR 

log4j.category.dest1=INFO 
log4j.appender.dest1=org.apache.log4j.ConsoleAppender 
log4j.appender.dest1.layout=org.apache.log4j.PatternLayout 
log4j.appender.dest1.layout.ConversionPattern=%-22d{dd/MMM/yyyy HH:mm:ss} %-8p %c [%t] - %m (%l)%n 

#Log items that are being added 
log4j.logger.Additions=INFO 
log4j.additivity.Additions=false 
log4j.appender.Additions=org.apache.log4j.RollingFileAppender 
log4j.appender.Additions.File=${log4j.file.home}/Additions.log 
log4j.appender.Additions.MaxFileSize=10000KB 
log4j.appender.Additions.MaxBackupIndex=10 
log4j.appender.Additions.layout=org.apache.log4j.PatternLayout 
log4j.appender.Additions.layout.ConversionPattern=%-22d{dd/MMM/yyyy HH:mm:ss} %-8p %c [%t] - %m (%l)%n 

#Log items that are being removed 
log4j.logger.Deletions=INFO 
log4j.additivity.Deletions=false 
log4j.appender.Deletions=org.apache.log4j.RollingFileAppender 
log4j.appender.Deletions.File=${log4j.file.home}/Deletions.log 
log4j.appender.Deletions.MaxFileSize=10000KB 
log4j.appender.Deletions.MaxBackupIndex=10 
log4j.appender.Deletions.layout=org.apache.log4j.PatternLayout 
log4j.appender.Deletions.layout.ConversionPattern=%-22d{dd/MMM/yyyy HH:mm:ss} %-8p %c [%t] - %m (%l)%n 

et voici mes bûcherons reçoivent de la classe:

private static Logger addLog = Logger.getLogger("Additions"); 
private static Logger deleteLog = Logger.getLogger("Deletions"); 

Que dois-je besoin de résoudre pour comprendre cela?

Répondre

6

Vous confondez les enregistreurs avec des appendices. Vous avez défini des Loggers appelés Ajouts et Suppressions, et vous avez défini des Appenders avec les mêmes noms, mais vous devez associer les deux. Il ne suffit pas de leur donner le même nom.

Je vous suggère de renommer les appenders pour qu'ils soient distincts des Loggers, pour éviter cette confusion. Vous devez ensuite attribuer appenders aux bûcherons comme celui-ci:

log4j.logger.Additions=INFO, Additions 
log4j.logger.Deletions=INFO, Deletions 

Enfin, je suggère que vous envisager de passer du format des propriétés au format XML. À mon avis, c'est beaucoup plus lisible, et il est évident que tout le reste et quelles sont les structures.

1

comparant à mon propre configuration d'écriture multi-fichiers log4j Je vous recommande:

  1. Déplacez vos lignes log4j.logger et log4j.additivity de sorte qu'ils sont après les déclarations log4j.appender.
  2. Modifier log4j.logger pour spécifier le appender, comme dans "log4j.logger.Additions = INFO, ajouts"

Il devient un peu plus clair lorsque votre appender a un nom différent de l'enregistreur. Voici une partie de la mienne:

log4j.appender.ChatLogs=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.ChatLogs.layout=org.apache.log4j.PatternLayout 
log4j.appender.ChatLogs.layout.ConversionPattern=%d{yyyy-MMM-dd HH:mm:ss:SSS}: %m%n 
log4j.appender.ChatLogs.File=logs/chats.log 
log4j.appender.ChatLogs.Threshold=INFO 
log4j.appender.ChatLogs.Priority=INFO 
log4j.appender.ChatLogs.DatePattern='.'yyyy-MM-dd 

log4j.logger.chatfilter.ChatFilterPlugin=info, ChatLogs 
log4j.additivity.chatfilter.ChatFilterPlugin=false 
Questions connexes