log4j2 plusieurs appenders, plusieurs bûcherons config.xml
J'essaye de configurer un log4j2 xml de config et je suis de ne pas obtenir les résultats que je désire. Je veux que ma console pour obtenir le niveau info et au-dessus, et les rolling fichier appender (standard) pour obtenir le niveau de débogage et au-dessus. Je veux restreindre 3 classes dans la console appender, à la garde et au-dessus. Cependant, quand j'ai ajouter ces entrées de l'enregistreur de mon standard appender s'arrête aussi à la réception de l'info et les niveaux de débogage pour ces 3 classes. Que dois-je faire pour ne limite la console et pas standard?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out"/>
<param name="threshold" value="info" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p %c [%t] %X{ctx} ~ %m%n" />
</layout>
</appender>
<appender name="standard" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="logs/broadcast.log" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<param name="threshold" value="debug" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{DATE} %-5p %c{1} [%t] %X{ctx} ~ %m%n" />
</layout>
</appender>
<appender name="stderr" class="org.apache.log4j.FileAppender">
<param name="file" value="logs/broadcast.err" />
<param name="threshold" value="error" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{DATE} %-5p %c{1} [%t] %X{ctx} ~ %m%n" />
</layout>
</appender>
<appender name="jlv" class="org.apache.log4j.net.SocketAppender">
<param name="remoteHost" value="localhost"/>
<param name="port" value="4445"/>
<param name="locationInfo" value="true"/>
</appender>
<logger name="com.mydetv.broadcast.BroadcastLoop">
<level value="warn"/>
<appender-ref ref="console" />
</logger>
<logger name="com.mydetv.broadcast.BroadcastUpdate22">
<level value="warn"/>
<appender-ref ref="console" />
</logger>
<logger name="com.mydetv.broadcast.vlc.VlcRequest22">
<level value="warn"/>
<appender-ref ref="console" />
</logger>
<root>
<priority value ="debug" />
<appender-ref ref="standard" />
<appender-ref ref="stderr"/>
<appender-ref ref="console" />
<appender-ref ref="jlv"/>
</root>
</log4j:configuration>
OriginalL'auteur phomlish | 2013-12-30
Vous devez vous connecter pour publier un commentaire.
D'abord, ça ressemble à de la config est pour log4j-1.x, pas log4j2. Vous aurez besoin de convertir cette option si vous souhaitez utiliser log4j2. (Le manuel a de nombreux exemples pour la nouvelle syntaxe.)
Il le pensait initialement, vous pourriez avoir besoin d'utiliser la log4j2 ThresholdFilter (http://logging.apache.org/log4j/2.x/manual/filters.html#ThresholdFilter ), mais cela peut être une méthode plus simple:
(BTW, les modèles de disposition dans l'exemple de config ci-dessous encore besoin de quelques travaux pour correspondre à l'original de votre config.)
Logger
noeud agit comme un bouchon ou une limite. par exemple,<Logger name="..." level="info"><appender-ref ref="common-log" level="trace" /><Logger>
, plafonne à toutes vos entrées de journal dans le journal commun àINFO
. Pour enlever, vous pouvez définir le niveau sur leLogger
nœud àall
ou tout simplement l'enlever et de le déclarer explicitement par l'appender.OriginalL'auteur Remko Popma
Si par hasard, vous souhaitez restreindre l'utilisation de appender spécifiques LogLevel. Sans doute la bonne réponse est d'utiliser des filtres. Veuillez prendre un coup d'oeil à spécifique enregistreur pour les niveaux
OriginalL'auteur N0mi
Résolu à l'aide de
GEventEvaluator
avec le custom script Groovy:http://logback.qos.ch/manual/filters.html#GEventEvaluator
Je ne peux pas croire ce si simple cas d'utilisation n'est pas pris en charge par défaut.
OriginalL'auteur Joan