An MBean změnit na úroveň teplé špalky Log4j
Změna horké (nebo restart systému bez 'Application Server) je jedním z požadavků obvykle nejčastější ve vývoji podnikových aplikací v Javě.
Během doby, kdy jsem mohla vidět a vyzkoušet různá řešení (více či méně elegantní), ale nejčastěji byli docela namáhavé a kloubový, a tuto skutečnost vždy v consistevamo volebních systémů v konfiguračních souborech nebo z servlet ručně odvolávat na reload souboru log4j.properties nebo log4j.xml změnit.
Dnes s pomocí jaro a zejména na třídu "org.springframework.jmx.export.MBeanExporter", to se stává opravdu snadno vytvořit MBean schopen vystavit všechny metody potřebné k manipulaci s teplou a "Hlupák".
Nyní maloobchodní provádění, co je potřeba začít, je jednoduchá třída, která může odhalit metody pro manipulaci s loggers:
net.nothing2hide.jmx obalu; dovozní java.util.Enumeration; import java.util.List; import java.util.Vector; dovozní org.apache.log4j.Level; dovozní org.apache.log4j.LogManager; dovozní org.apache . Log4j.Logger; veřejné třída Log4jConfigurator (/ ** * Nastavení přihlásit úrovni, aby informace pro cílového logger * @ param cílové jméno loggeru změnit * / veřejné neplatné enableInfo (Smyčcový cíl) (LogManager.getLogger (target) . SetLevel (Level.INFO);) / ** * Nastavení přihlásit úrovni upozornit na cílové logger * @ param cílové jméno loggeru změnit * / veřejné neplatné enableWarn (Smyčcový cíl) (LogManager.getLogger (target) . SetLevel (Level.WARN);) / ** * Nastavení přihlásit na úrovni ERROR pro cílové logger * @ param cílové jméno loggeru změnit * / veřejné neplatné enableError (Smyčcový cíl) (LogManager.getLogger (target) . SetLevel (Level.ERROR);) / ** * Nastavení přihlásit úrovni, aby DEBUG pro cílové logger * @ param cílové jméno loggeru změnit * / veřejné neplatné enableDebug (Smyčcový cíl) (LogManager.getLogger (target) . SetLevel (Level.DEBUG);) / ** * Nastavení přihlásit úrovni, INFO pro kořenový logger * / veřejné neplatné enableInfoGlobally () (LogManager.getRootLogger (). SetLevel (Level.INFO);) / ** * Nastavit log úrovni, aby WARN pro kořenový logger * / veřejné neplatné enableWarnGlobally () (LogManager.getRootLogger (). setLevel (Level.WARN);) / ** * Nastavení přihlásit na úrovni ERROR pro kořenový logger * / veřejné neplatné enableErrorGlobally () (LogManager.getRootLogger (). SetLevel (Level.ERROR);) / ** * Nastavení přihlásit úrovni, aby DEBUG pro kořenový logger * / veřejné neplatné enableDebugGlobally () (LogManager.getRootLogger (). SetLevel (Level.DEBUG );) / ** * @ Vrátí seznam všech dostupných loggers * / veřejné Smyčcový listAvailableLoggers () (Výčet en = LogManager.getLoggerRepository (). GetCurrentLoggers (); StringBuffer bytost = new StringBuffer (); while (en.hasMoreElements ()) (Logger logger = (Hlupák) en.nextElement (); res.append (logger.getName ()). Append ( "n");) vrátit res.toString ();)) Dalším krokem v 'vývoz třídy "Log4jConfigurator" jako MBean prostřednictvím jaro:
<bean id="myMBeansExporter" class="org.springframework.jmx.export.MBeanExporter" lazy-init="false"> <property name="beans"> <map> <vstupu klíčových = "n2h: name = log4jConfigurator" Hodnota-ref = "log4jConfigurator" /> </ map> </ nemovitost> <property name="registrationBehaviorName" value="REGISTRATION_REPLACE_EXISTING" /> </ bean> <bean id = "log4jConfigurator" class = "net.nothing2hide.jmx . Log4jConfigurator "/> V tomto bodě, jakmile deployata naší žádosti budeme mít k dispozici MBean "n2h: log4jConfigurator" prostřednictvím jakékoli JMX konzoli budeme zpřístupní všechny metody třídy "Log4jConfigurator."
| | Líbilo se vám tento článek? Objednat nyní RSS kanály! |
Stále bez komentáře '
RSS kanál pro komentáře na tento post. TrackBack URI



































