Абонирайте се за бюлетин или RSS емисия да получават актуализации автоматично блог!

MBean за промяна в нивото на топла дневници Log4j



Промяната се нагряват (без рестартиране на "Application Server) е едно от изискванията обикновено по-често при разработването на приложения в Enterprise Java.
С течение на времето мога да видите и опитате различни решения (повече или по-елегантен), но повечето пъти са доста напрегнат и съчленен, и този факт е винаги на избирателните секции на конфигурационните файлове или чрез позоваване на servlet ръчно за презареди файл log4j.properties или log4j.xml променена.
Днес с помощта на пролетта и по-специално org.springframework.jmx.export.MBeanExporter класа ", тя става много лесно да създадете MBean да откриете всички методи е необходимо да манипулират гореща" дървар ".

Сега на дребно изпълнение; какво имаме нужда, за да започнете е прост клас, който може да откриете на методи за манипулиране на 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(); } } 

Следващата стъпка в "износ на клас" Log4jConfigurator ", както MBean през пролетта:

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

На този етап, след като се разгръщат нашата молба, ние имаме MBean "n2h: log4jConfigurator", което означава всеки JMX конзолата ще направи достъпни всички методи на класа "Log4jConfigurator."



Хареса ли ти тази статия? Регистрирайте се сега, за да получавате актуализации или новинарски статии:
Абонамент за RSS емисии Пишете на RSS емисия


Все още няма коментар "

Коментари RSS емисия за тази публикация. TrackBack URI

Оставете коментар

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


Nothing2Hide © 2006 Всички права запазени.

Лиценз | Опровержение

Затварям
Изпрати електронна поща