166 votes

Comment empêcher logback de générer son propre statut au début de chaque journal?

Cela semble être une erreur d'inattention, mais je n'arrive pas à en trouver la cause. La journalisation avec logback/slf4j (la plus récente version slf4j-api-1.6.1, logback core/classique 0.9.24). La plus simple de configuration de la journalisation pour le test est:

<configuration>
 <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
  <layout class="ch.qos.logback.classic.PatternLayout">
   <!-- DONT USE THIS FORMATTER FOR LIVE LOGGING THE %L LINE NUMBER OUTPUTTER IS SLOW -->
   <pattern>%le %-1r [%c{1}:%L] %m%n</pattern>
  </layout>
 </appender>
 <root level="DEBUG">
  <appender-ref ref="stdout" />
 </root>
</configuration>

Tous les journaux de programme d'installation démarre avec logback le statut interne des lignes:

11:21:27,825 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
11:21:27,826 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback-test.xml] at [file:.../logback-test.xml]
11:21:28,116 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
11:21:28,124 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
11:21:28,129 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [stdout]
11:21:28,180 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Pushing component [layout] on top of the object stack.
11:21:28,206 |-WARN in ch.qos.logback.core.ConsoleAppender[stdout] - This appender no longer admits a layout as a sub-component, set an encoder instead.
11:21:28,206 |-WARN in ch.qos.logback.core.ConsoleAppender[stdout] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.
11:21:28,206 |-WARN in ch.qos.logback.core.ConsoleAppender[stdout] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details
11:21:28,207 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to DEBUG
11:21:28,207 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [stdout] to Logger[ROOT]

ce qui est, selon les documents, le format logback utilise par défaut. Puis, il a fini de lire le fichier de configuration (qui est fixé à la sortie d'un format différent) et se poursuit avec la sortie formatée. Il y a une config paramètre <configuration debug="false"> qui n'a pas d'incidence sur cette question.

Quelqu'un sait comment arrêter cela?

268voto

Rasmus Faber Points 24195

Si vous définissez l' debug attribut de l' configuration élément d' true, vous obtiendrez toutes les informations d'état de la console. Si c'est votre problème, il suffit de le mettre à false ou de le supprimer.

Si vous avez des problèmes de configuration de niveau WARN ou au-dessus, vous obtiendrez également toutes les informations d'état connecté à la console. La meilleure solution à ce problème consiste à résoudre le problème (dans votre cas, remplacez l' <layout> éléments <encoder> élément).

Si vous pour une raison quelconque ne peut pas résoudre le problème, mais souhaitez supprimer le statut de l'information à partir de la console, vous pouvez configurer une solution de rechange StatusListener. Utiliser l' NopStatusListener pour supprimer complètement le statut de l'information:

<configuration>
  <statusListener class="ch.qos.logback.core.status.NopStatusListener" />
  <!-- etc -->
</configuration>

47voto

Ceki Points 8781

Comme décrit dans la documentation, si des avertissements ou des erreurs se produisent lors de l'analyse du fichier de configuration, logback automatiquement l'état de l'impression des données sur la console.

Suivre http://logback.qos.ch/codes.html#layoutInsteadOfEncoder c'est à dire le lien mentionné par logback dans son message d'avertissement. Une fois que vous suivez les étapes mentionnées, qui est, si vous remplacez <layout> élément <encodeur>, logback va arrêter l'impression des messages sur la console.

5voto

Intesar Mohammed Points 194

J'ai réalisé que Steve avait trouvé le correctif mais il ne l'a pas mentionné dans le fil. Au cas où une autre personne toucherait le même problème, voici le correctif.

Remplacez les éléments "<layout>" par "<encoder> .. </ encoder>", c'est le coupable. <Layout class = "ch.qos.logback.classic.PatternLayout">

2voto

Michael-O Points 6715

Cela semble être corrigé dans 0.9.29. Je viens de faire plusieurs tests. Plus d'Info Joran. Je suppose que ceci est la réparation de commit.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X