Inscreva-se em boletins informativos ou para o meu feeds RSS para receber atualizações automaticamente blog!

Um MBean a alteração do nível dos logs quente Log4J



A mudança quente (ou sem reiniciar o "Application Server) é um dos requisitos normalmente mais freqüentes no desenvolvimento de aplicações empresariais em Java.
Com o tempo eu podia ver e experimentar diferentes soluções (mais ou menos elegante), mas na maioria das vezes eram bastante trabalhoso e articulada, e que na verdade sempre consistevamo sistemas de voto em arquivos de configuração manualmente ou a partir de servlet para a invocar recarregar o arquivo log4j.properties ou log4j.xml mudado.
Hoje com a ajuda da Primavera e, em especial a classe "org.springframework.jmx.export.MBeanExporter", torna-se realmente fácil de criar um MBean capaz de expor todos os métodos necessários para manipular uma quente "Logger".

Estamos agora a retalho execução; o que precisamos para começar é uma simples classe que podem expor métodos para manipular os madeireiros:

  net.nothing2hide.jmx pacote; importação java.util.Enumeration; importação java.util.List; importação java.util.Vector; importação org.apache.log4j.Level; importação org.apache.log4j.LogManager; importação org.apache . Log4j.Logger; público classe Log4jConfigurator (/ ** * Defina o nível de log INFO-alvo para o logger * @ param alvo O nome do logger para alterar * / public void enableInfo (String alvo) (LogManager.getLogger (meta) . SetLevel (Level.INFO);) / ** * Defina o log nível de advertir para a meta logger * @ param alvo O nome do logger para alterar * / public void enableWarn (String alvo) (LogManager.getLogger (meta) . SetLevel (Level.WARN);) / ** * Defina o log de erro para o nível alvo logger * @ param alvo O nome do logger para alterar * / public void enableError (String alvo) (LogManager.getLogger (meta) . SetLevel (Level.ERROR);) / ** * Defina o nível de log DEBUG para o alvo logger * @ param alvo O nome do logger para alterar * / public void enableDebug (String alvo) (LogManager.getLogger (meta) . SetLevel (Level.DEBUG);) / ** * Defina o nível de log INFO para o RAIZ logger * / public void enableInfoGlobally () (LogManager.getRootLogger (). SetLevel (Level.INFO);) / ** * Set o log nível de advertir para o RAIZ logger * / public void enableWarnGlobally () (LogManager.getRootLogger (). setLevel (Level.WARN);) / ** * Defina o log de erro para o nível RAIZ logger * / public void enableErrorGlobally () (LogManager.getRootLogger (). SetLevel (Level.ERROR);) / ** * Defina o nível de log DEBUG para o RAIZ logger * / public void enableDebugGlobally () (LogManager.getRootLogger (). SetLevel (Level.DEBUG );) / ** * @ Return A lista de todos os madeireiros disponíveis * / public String listAvailableLoggers () (Enumeração = pt LogManager.getLoggerRepository (). GetCurrentLoggers (); StringBuffer res = new StringBuffer (); ao mesmo tempo (en.hasMoreElements ()) (Logger logger = (Logger) en.nextElement (); res.append (logger.getName ()). Append ( "n");) retorno res.toString ();)) 

O próximo passo na "exportação de classe" Log4jConfigurator "como MBean através da Primavera:

  <bean id="myMBeansExporter" class="org.springframework.jmx.export.MBeanExporter" lazy-init="false"> <property name="beans"> <map> <entrada chave = "n2h: nome = log4jConfigurator" Valor-ref = "log4jConfigurator" /> </ mapa> </ propriedade> <property name="registrationBehaviorName" value="REGISTRATION_REPLACE_EXISTING" /> </ feijão> <feijão id = "log4jConfigurator" class = "net.nothing2hide.jmx . Log4jConfigurator "/> 

Neste ponto, uma vez deployata nosso pedido, vamos ter disponível o MBean "n2h: log4jConfigurator" através de qualquer console JMX iremos disponibilizar todos os métodos de classe "Log4jConfigurator".

Assinar o meu feeds RSS Você gostou deste artigo? Feeds RSS Assine agora!


Ainda nenhum comentário "

RSS feed dos comentários deste post. TrackBack URI

Deixe um comentário

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


Válido XHTML e CSS. ^ Topo


Fechar
Enviar e-mail