9
votes

log4j dirige toutes les sorties de journal sur stdout même si ce n'est pas censé

dans mon log4j.properties j'ai:

static Logger log = Logger.getRootLogger();


0 commentaires

3 Réponses :


24
votes

Vous devez définir additivité = false , iirc. De manuel log4j :

Chaque demande de journalisation activée pour un L'enregistreur donné sera envoyé à tous les annexiers dans cet enregistreur aussi Comme les annexes sont plus élevées dans le hiérarchie. En d'autres termes, les appendeurs sont hérités d'additivement de la Hiérarchie de l'enregistreur. Par exemple, si un L'appendeur de la console est ajouté à la racine enregistreur, puis toutes les journalistes activées Les demandes seront au moins imprimées sur le console. Si en plus un fichier Appender est ajouté à un enregistreur, disons c, puis activé les demandes de journalisation pour c et les enfants de C imprimeront dans un fichier et sur la console. Il est possible de remplacer ce comportement par défaut pour que L'accumulation d'appender n'est plus additif en définissant l'additivité Drapeau à faux.

Essayez ceci: xxx


0 commentaires

0
votes

hmm, aurait dû lire la courte intro de log4J plus soigneusement xxx

correctement, car il hérite des annexiers des enregistreurs au-dessus de celui-ci dans la hiérarchie, et l'enregistreur racine est en haut de la hiérarchie évidemment.


3 commentaires

Qu'est-ce que cela a à voir avec l'optimisation?


De quelle manière est-il "optimisation prématurée"? Ce n'est pas un "optimisation" du tout. Il se trouve que vous voulez une option différente de la valeur par défaut. Si la valeur par défaut était pour être fausse, cela signifierait qu'un bon nombre d'autres personnes devraient de la définir explicitement vers true. Je soupçonne plus de gens le veulent "vrai" que "faux".


L'attente est assez claire si vous avez lu les documents de l'intro Log4J ou l'avez utilisé



0
votes

Si les propriétés de l'enregistreur ont été définies dans la classe Java, vous pouvez appeler la méthode logger.Shutdown () à la fin, préféremment dans le bloc enfin pour interdire la nature additive de l'enregistreur.


0 commentaires