Abonnér på nyhedsbrev eller RSS-feed til at modtage opdateringer automatisk blog!

MBean for en ændring i omfanget af varmt logfiler Log4j



Ændringen varme (dvs. uden at genstarte 'Application Server) er en af de krav, som regel oftere i udviklingen af virksomhedens applikationer i Java.
Med tiden kunne jeg se og prøve forskellige løsninger (mere eller mindre elegant), men de fleste gange var temmelig omstændelig og formuleres, og dette forhold er altid på afstemningsstedet på opsætningsfiler eller ved at aktivere servlet manuelt for genindlæse filen log4j.properties eller log4j.xml ændret.
I dag ved hjælp af foråret og især klasse org.springframework.jmx.export.MBeanExporter ", bliver det virkelig nemt at oprette en MBean kan udsætte alle metoder er nødvendige for at manipulere med et varmt" Logger ".

Vi har nu detail gennemførelse; hvad vi har brug for at komme i gang er en simpel klasse, som kan udsætte metoder til at manipulere skovhuggere:

 package net.nothing2hide.jmx; import java.util.Enumeration; import java.util.List; import java.util.Vector; import org.apache.log4j.Level; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; public class Log4jConfigurator { /** * Set the log level to INFO for the target logger * @param target The name of the logger to change */ public void enableInfo(String target) { LogManager.getLogger(target).setLevel(Level.INFO); } /** * Set the log level to WARN for the target logger * @param target The name of the logger to change */ public void enableWarn(String target) { LogManager.getLogger(target).setLevel(Level.WARN); } /** * Set the log level to ERROR for the target logger * @param target The name of the logger to change */ public void enableError(String target) { LogManager.getLogger(target).setLevel(Level.ERROR); } /** * Set the log level to DEBUG for the target logger * @param target The name of the logger to change */ public void enableDebug(String target) { LogManager.getLogger(target).setLevel(Level.DEBUG); } /** * Set the log level to INFO for the ROOT logger */ public void enableInfoGlobally() { LogManager.getRootLogger().setLevel(Level.INFO); } /** * Set the log level to WARN for the ROOT logger */ public void enableWarnGlobally() { LogManager.getRootLogger().setLevel(Level.WARN); } /** * Set the log level to ERROR for the ROOT logger */ public void enableErrorGlobally() { LogManager.getRootLogger().setLevel(Level.ERROR); } /** * Set the log level to DEBUG for the ROOT logger */ public void enableDebugGlobally() { LogManager.getRootLogger().setLevel(Level.DEBUG); } /** * @return The list of all the available loggers */ public String listAvailableLoggers(){ Enumeration en = LogManager.getLoggerRepository() .getCurrentLoggers(); StringBuffer res = new StringBuffer(); while(en.hasMoreElements()){ Logger logger = (Logger)en.nextElement(); res.append(logger.getName()).append("n"); } return res.toString(); } } 

Det næste skridt i 'eksport af klasse "Log4jConfigurator" som MBean gennem foråret:

 <bean id="myMBeansExporter" class="org.springframework.jmx.export.MBeanExporter" lazy-init="false"> <property name="beans"> <map> <entry key="n2h:name=log4jConfigurator" value-ref="log4jConfigurator"/> </map> </property> <property name="registrationBehaviorName" value="REGISTRATION_REPLACE_EXISTING" /> </bean> <bean id="log4jConfigurator" class="net.nothing2hide.jmx.Log4jConfigurator" /> 

På dette tidspunkt, når først installere vores program, vi har MBean "n2h: log4jConfigurator", som betyder noget JMX konsol vil give adgang til alle metoder i klassen "Log4jConfigurator."



Har du gerne denne artikel? Tilmeld dig nu for at modtage opdateringer eller nyhedsartikler:
Abonner på RSS-feeds skrive til RSS-feed


Stadig ingen kommentarer »

Kommentarer RSS-feed for dette indlæg. TrackBack URI

Efterlad en kommentar

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


Nothing2Hide © 2006 All rights reserved.

License | Ansvarsfraskrivelse

Luk
Send e-mail