2010-11-21 4 views
0

Lorsque mon enregistreur est défini sur "all", les messages que mon code ne place pas explicitement s'affichent. J'utilise un pot un de mes amis m'a donné à faire certaines choses (et je pense qu'il est lui-même des choses logging)log4j, journalisation étrangère

Je voudrais vous connecter uniquement des choses que je demande à être connecté en exécutant la

logger.info ("something clever"); command 

Ci-dessous est mon log4j.properties

s'il vous plaît aviser.

# ***** Set root logger level to WARN and its two appenders to stdout and R. 
log4j.rootLogger=all, R 

# ***** R is set to be a RollingFileAppender. 
log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.File=log/something.log 
# ***** Max file size is set to 100KB 
log4j.appender.R.MaxFileSize=100KB 
# ***** Keep one backup file 
log4j.appender.R.MaxBackupIndex=1 
# ***** R uses PatternLayout. 
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n 

Répondre

2

Jetez un oeil à cet excellent log4j antisèche:

Fondamentalement, vous devez définir quelque chose comme ceci:

log4j.rootCategory=error, R 
log4j.category.com.your.package=debug 

ou bien:

log4j.category.com.your.friends.package=error 

Remplacez les noms de packages si nécessaire.

Ces rendrait l'enregistreur root définie à l'erreur (si un paquet - y compris d'autres bibliothèques que vous utilisez peut-être, comme Hibernate, Spring, etc.) n'enregistrerez rien de bas niveau (debug, info, mettre en garde) , mais ne consigner que les erreurs.

Il va également définir votre paquet (inclure votre paquet de haut niveau ou des paquets) pour se connecter au niveau de débogage, donc tous vos enregistreurs se connecteront normalement. Il va également mettre le paquet de votre ami à l'erreur, donc il ne sort rien.

Si vous avez un paquet racine commun, utilisez-le. Par exemple. si vous avez des paquets:

  • com.example
  • com.example.a
  • com.example.a.aa
  • com.example.b
  • com.example.cd

juste inclure com.example et il héritera pour les paquets ci-dessous par défaut.

Vous pouvez, bien sûr, l'ignorer, par ex. préciser:

  • com.example - mettre en garde
  • com.example.a.aa - debug

ou quelque chose de similaire.Jetez un coup d'oeil ici pour une explication détaillée:

+0

Puis-je définir pour tous les paquets dans mon projet, ou dois-je ajouter des packages séparément? – JAM

+0

Vérifiez la publication modifiée. –

Questions connexes