2010-08-25 6 views

Répondre

31

Dans mon fichier log4j.properties je mis le niveau de journalisation de l'enregistreur racine à l'erreur. Ensuite, pour les paquets que je veux spécifiquement enregistrer, comme mon code d'application, je définis le niveau de journalisation sur INFO ou DEBUG.

log4j.rootLogger=ERROR, stdout 
log4j.logger.com.initech.tps=DEBUG 
log4j.logger.org.hibernate.SQL=INFO 

Je vois des collègues qui ont mis l'exploitation des racines bas et puis finissent par énumérer tout ce qu'ils ne veulent pas voir, qui semble juste en arrière pour moi. Je préférerais lister ce que je veux enregistrer que toutes les choses que je ne veux pas enregistrer. Le fait de désactiver complètement la connexion pour un composant tiers me semble être une mauvaise idée. Par exemple, Spring est relativement bruyant et utilise WARN pour des choses dont je n'ai pas vraiment besoin de savoir, mais s'il enregistre une entrée ERROR pour quelque chose, je veux le voir.

+1

+1 pour les références Espace de travail –

2

N'ajoutez simplement pas ces packages dans votre fichier log4j.properties. Par exemple, vous devez l'avoir pour Spring dans votre fichier de propriétés. Sortez-le si vous avez des entrées comme ci-dessous (tout ce qui commence par org.springframework). Idem doit être fait pour hiberner.

#Logs the SQL from Spring 
log4j.logger.org.springframework.jdbc.core.JdbcTemplate=ERROR 
#Logs the SQL parameters from Spring 
log4j.logger.org.springframework.jdbc.core.StatementCreatorUtils=ERROR 

De même, comme il a été mentionné, vous devez également définir les éléments suivants. J'ai oublié de mentionner ceci.

log4j.rootLogger=FATAL 
or 
log4j.rootLogger=ERROR 
+2

C'est l'inverse. L'enregistreur racine permet généralement tout, et vous devez ensuite désactiver ceux que vous ne voulez pas. D'où le = ERROR donc tous les niveaux inférieurs ne montrent pas. –

+0

@ Thorbjørn Ravn Andersen: S'il vous plaît lire ce que j'ai dit. J'ai dit à OP de les sortir s'il avait une de ces entrées puisqu'il ne voulait pas voir les messages de ces paquets. – CoolBeans

+0

Mettre des lignes similaires à celles de, empêchera la consignation du message de débogage ou d'information pour ces paquets, même si debug/info a été défini pour rootLogger. –

3

En log4j.properties vous pouvez définir des niveaux individuels sur une base par enregistreur:

log4j.logger.<name>=FATAL 

Dans log4j.xml la syntaxe est

<logger name="<name>"> 
    <level value="fatal"/> 
</logger> 

<nom> est souvent le plein nom de classe qualifié. Vous pouvez utiliser WARN ou ERROR au lieu de FATAL

14

Vous pouvez le faire en modifiant le niveau du journal dans le fichier log4j.properties/log4j.xml.

Vous devez définir le <level value="off"/> de l'enregistreur si vous souhaitez filtrer les journaux du package, mais conserver la configuration de l'enregistreur pour une utilisation ultérieure. Vous pouvez également définir le niveau le plus élevé pour vous connecter uniquement en cas d'erreur ou de problème fatal.

entrées suivantes doivent être ajoutées à log4j.xml pour désactiver la journalisation des paquets de mise en veille prolongée et springframework:

<logger name="org.springframework"> 
    <level value="off"/> 
</logger> 
<logger name="org.hibernate"> 
    <level value="off"/> 
</logger> 
+0

donc niveau peut être réglé pour le paquet parent comme dans ce cas si je ne veux pas de journaux de tous les paquets en commençant par org.springframework Je vais définir son niveau comme off. – YoK

Questions connexes