Comment faire pour activer l'Enregistreur.debug() dans Log4j
Tout en essayant d'exécuter les lignes suivantes seuls les deux derniers états sont affichés("Voici l'ERREUR" et "Voici quelques FATALE") et les trois premiers énoncés ne sont pas affichés.Je venais juste de commencer à apprendre à ce sujet, si quelqu'un peut dire pourquoi est-ce arrivé?
logger.debug("Here is some DEBUG");
logger.info("Here is some INFO");
logger.warn("Here is some WARN");
logger.error("Here is some ERROR");
logger.fatal("Here is some FATAL");
la log4j.la propriété a
log4j.rootLogger=debug,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%5p] %d{mm:ss}(%F:%M:%L)%n%m%n%n
- Mais j'ai log4j.les propriétés n'est-ce pas suffisant?
- Vous pouvez poster votre log4j.fichier de propriétés?
- vous ne devriez pas nom il
log4j.property
, il devrait êtrelog4j.properties
- désolé, lors de l'édition j'ai fait l'erreur, c'est log4j.les propriétés
- Peut-être une question stupide, mais avez-vous dit à votre Enregistreur lorsque le fichier de propriétés est? Ce que vous faites en appelant PropertyConfigurator.configurer(pathToPropFile);
- Où dois-je faire appel? J'ai une application GWT, mais je ne sais pas où je peux appeler PropertyConfigurator...
Vous devez vous connecter pour publier un commentaire.
Vous avez probablement un log4j.les propriétés de fichier quelque part dans le projet. Dans ce fichier, vous pouvez configurer le niveau de sortie de débogage que vous voulez. Voir cet exemple:
La première ligne définit le niveau de journalisation de la racine enregistreur de frappe pour "info", c'est à dire uniquement info, warn, error et fatal sera imprimé sur la console (ce qui est le appender définie un peu en dessous).
La dernière ligne définit l'enregistreur de pour com.exemple.* (si vous obtenez votre enregistreurs via
LogFactory.getLogger(getClass())
) sera au niveau de debug, c'est à dire de débogage seront également imprimées.Voici un rapide d'une ligne de hack que je l'occasion de l'utiliser temporairement activer la journalisation de débogage dans un test Unitaire:
org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.DEBUG);
Logger
dans la classe où vous êtes activation de la journalisation. L'importation est probablement déjà là.Logger
; mais généralement pasLevel
.Mettre un fichier nommé
log4j.xml
dans votre classpath. Les contenus sont par exempleCeci est probablement dû au fait que votre configuration log4j est fixé à
ERROR
. Recherchez un log4j.les propriétés de fichier avec le contenu suivant:La
rootLogger
est fixé àERROR
niveau ici à l'aide d'unCONSOLE
appender.Noter que certains appenders comme la console appender ont également un
Threshold
propriété qui peut être utilisée pour annuler lesrootLoggers
niveau. Vous avez besoin de vérifier à la fois dans ce cas.Si vous venez ici parce que vous êtes à l'aide d'Apache commons logging avec log4j et log4j ne fonctionne pas comme vous l'attendez ensuite, vérifiez que vous avez réellement un log4j.jar dans votre classpath. Que l'on m'avait intrigué pour un peu de temps. J'ai configuré le coureur dans mon environnement de dev pour inclure -Dlog4j.debug dans la ligne de commande Java donc je peux toujours voir que Log4j est initialisé correctement
Vous avez besoin pour configurer l'enregistreur de données au niveau le plus bas que vous souhaitez afficher. Par exemple, si vous souhaitez afficher les messages de DÉBOGAGE, vous devez configurer l'enregistreur de niveau de DÉBOGAGE.
La Apache log4j manuel a une section sur la Configuration.
J'aime utiliser un rouleau de fichier appender d'écrire la journalisation des infos dans un fichier. Mon propriétés log4j fichier ressemble généralement quelque chose comme ça. Je préfère cette façon car j'aime faire de paquet spécifique de journalisation dans le cas où j'ai besoin des degrés divers, de l'exploitation forestière pour les packages différents. Un seul colis est mentionné dans l'exemple.
Ce qui se passe en raison du fait que le niveau d'enregistrement de votre enregistreur est réglé sur "erreur" - donc, vous ne verrez que des messages d'erreur ou au-dessus de ce niveau en termes de gravité, donc c'est pourquoi vous voyez aussi la 'fatale' message.
Si vous réglez le niveau d'enregistrement de "debug" sur votre enregistreur à votre log4j.xml vous devriez voir tous les messages.
Ont un look à la log4j introduction pour l'explication.