Pretplatite se na newsletter ili RSS feed za primanje ažuriranja automatski blog!

MBean za promjene u razini vruće logove Log4j



Promjena vruć (tj. bez ponovnog pokretanja 'aplikacijski server) je jedan od zahtjeva obično češće u razvoju poduzetništva u Java aplikacija.
S vremenom sam mogao vidjeti i isprobati različite rješenja (više ili manje elegantnom), ali većinu puta bili su vrlo težak i artikuliran, i činjenica da je uvijek glasovanja na konfiguracijske datoteke ili na Pozivanje servlet ručno ponovno učitati datoteku log4j.properties ili log4j.xml promjena.
Danas uz pomoć proljeće i osobito u klasi org.springframework.jmx.export.MBeanExporter ", postaje zaista lako stvoriti MBean mogu otkriti sve metode potrebne za upravljanje toplom" drvosječa ".

Sada smo u maloprodaji provedbe; što nam je potrebno za početak rada je jednostavna klasa koja može otkriti metode za upravljanje u loggers:

 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(); } } 

Sljedeći korak u "izvoz u razredu" Log4jConfigurator "kao MBean kroz Proljeće:

 <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" /> 

U ovom trenutku, kada implementaciju naših programa, imamo MBean "n2h: log4jConfigurator" znači bilo koji koji konzola JMX učinit će sve raspoložive metode klase "Log4jConfigurator."



Jeste li kao što je ovaj članak? Prijavite se za primanje ažuriranja ili newsa:
Pretplati se na RSS izvore pisati na RSS feed


Još nema komentara '

Komentari RSS feed za ovaj post. Trackback URI

Ostavite komentar

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


Nothing2Hide © 2006 Sva prava pridržana.

Licenca | Odricanje od odgovornosti

Zatvoriti
Pošalji e-mail