2011-06-03 2 views
7

Sur la documentation de Logback, ils font mettre les informations JMX dans le fichier XML sembler facile:Logback Groovy Config pour utiliser JMX?

http://logback.qos.ch/manual/jmxConfig.html

Mais tous leurs exemples utilisent leur configuration XML et je veux utiliser Groovy. Il n'y a aucune mention de JMX Configurator dans leur documentation DSL Groovy:

http://logback.qos.ch/manual/groovy.html

Je copié le premier exemple JMX/XML dans leur XML traducteur Groovy.

Le XML:

<configuration> 
     <jmxConfigurator /> 

     <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> 
      <layout class="ch.qos.logback.classic.PatternLayout"> 
      <Pattern>%date [%thread] %-5level %logger{25} - %msg%n</Pattern> 
      </layout> 
     </appender> 

     <root level="debug"> 
     <appender-ref ref="console" /> 
     </root> 
</configuration> 

Le traducteur:

http://logback.qos.ch/translator/asGroovy.html

Et le résultat:

import ch.qos.logback.classic.PatternLayout 
import ch.qos.logback.core.ConsoleAppender 

import static ch.qos.logback.classic.Level.DEBUG 

appender("console", ConsoleAppender) { 
    layout(PatternLayout) { 
    pattern = "%date [%thread] %-5level %logger{25} - %msg%n" 
} 
} 
root(DEBUG, ["console"]) 

Et il n'a rien fait avec JMX - vient de mettre dans l'appender de la console.

Des idées de ce que je dois faire?

Répondre

8

Le configurateur pour analyser les fichiers de configuration basés sur Groovy ne prend pas en charge jmxConfigurator comme dans les fichiers de configuration XML. Mais nous pouvons toujours écrire une méthode dans notre fichier de configuration Groov pour initialiser le configurateur JMX. Si nous regardons le code source de Logback, nous voyons que le fichier ch.qos.logback.classic.joran.action.JMXConfigurationAction fait les choses nécessaires pour configurer JMX à partir de la configuration XML. Nous pouvons utiliser ce code comme exemple pour la version Groovy. Je n'ai pas testé ce code moi-même, mais j'espère que l'idée générale est claire.

+0

Cela a fonctionné - Merci! Mais il serait préférable que la documentation de logback indique que la configuration de Groovy ne fait pas nativement/facilement JMX. Leurs docs donnent l'impression que la grammaire est la même. – MikeHoss

+1

Je viens de l'ajouter à leur bug tracker: http://jira.qos.ch/browse/LBGENERAL-48 – sourcedelica

Questions connexes