Înscrieţi-vă la buletine de ştiri sau de a-mi Feed-uri RSS pentru a primi în mod automat actualizările de blog!

Un MBean de a schimba la nivel de cald jurnalele Log4j



Schimbarea la cald (sau fără repornire 'Application Server) este una dintre cerinţele de obicei, cele mai frecvente în dezvoltarea de aplicaţii de întreprindere în Java.
În timp am putut vedea şi încercaţi diferite solutii (mai mult sau mai putin eleganta), dar de cele mai multe ori au fost destul de laborioase şi de articulat, şi faptul că întotdeauna în consistevamo sisteme de secţii de votare pe fişiere de configurare sau de la servlet manual pentru a invoca reîncărcaţi fişierul log4j.properties sau log4j.xml schimbat.
Astazi, cu ajutorul primăvară şi în special de clasa "org.springframework.jmx.export.MBeanExporter", el devine cu adevărat uşor să creaţi un MBean posibilitatea de a expune toate metodele necesare pentru a manipula un hot "Logger".

Noi acum punerea în aplicare a vinde cu amănuntul; ceea ce avem nevoie pentru a începe este o simplă clasă, care pot expune metode de a manipula de logare:

  net.nothing2hide.jmx pachet; java.util.Enumeration de import; import java.util.List; import java.util.Vector; org.apache.log4j.Level de import; org.apache.log4j.LogManager de import; org.apache de import . Log4j.Logger; publice clasa Log4jConfigurator (/ ** * Setaţi nivelul de timp pentru INFO-ţintă de log * @ param ţintă Denumirea de logare pentru a modifica * / public void enableInfo (String ţintă) (LogManager.getLogger (ţintă) . SetLevel (Level.INFO);) / ** * Setaţi nivelul de timp pentru a avertiza pentru obiectivul de log * @ param ţintă Denumirea de logare pentru a modifica * / public void enableWarn (String ţintă) (LogManager.getLogger (ţintă) . SetLevel (Level.WARN);) / ** * Setaţi nivelul de timp pentru a EROARE pentru obiectivul de log * @ param ţintă Denumirea de logare pentru a modifica * / public void enableError (String ţintă) (LogManager.getLogger (ţintă) . SetLevel (Level.ERROR);) / ** * Setaţi nivelul de timp pentru a depana pentru obiectivul de log * @ param ţintă Denumirea de logare pentru a modifica * / public void enableDebug (String ţintă) (LogManager.getLogger (ţintă) . SetLevel (Level.DEBUG);) / ** * Seteaza timp la nivel de Informaţii pentru rădăcină de log * / public void enableInfoGlobally () (LogManager.getRootLogger (). SetLevel (Level.INFO);) / ** * Setaţi nivel de timp pentru a avertiza de root pentru logger * / public void enableWarnGlobally () (LogManager.getRootLogger (). setLevel (Level.WARN);) / ** * Setaţi nivelul de timp pentru a EROARE pentru rădăcină de log * / public void enableErrorGlobally () (LogManager.getRootLogger (). SetLevel (Level.ERROR);) / ** * Setaţi nivelul de timp pentru a depana pentru rădăcină de log * / public void enableDebugGlobally () (LogManager.getRootLogger (). SetLevel (Level.DEBUG );) / ** * @ Revenire la lista de tip logger de toate disponibile * / public String listAvailableLoggers () (Enumeration = en LogManager.getLoggerRepository (). GetCurrentLoggers (); StringBuffer res = new StringBuffer (); în acelaşi timp (en.hasMoreElements ()) (Logger logger = (Logger) en.nextElement (); res.append (logger.getName ()). Adăugare ( "n");) return res.toString ();)) 

Următorul pas în "exportul de clasa" Log4jConfigurator "ca MBean prin primăvară:

  <bean id="myMBeansExporter" class="org.springframework.jmx.export.MBeanExporter" lazy-init="false"> <property name="beans"> <map> <= cheie de înscriere "n2h: numele = log4jConfigurator" valoare-ref = "log4jConfigurator" /> </ map> </ imobiliare> <property name="registrationBehaviorName" value="REGISTRATION_REPLACE_EXISTING" /> </ fasole> <fasole id = "log4jConfigurator" Class = "net.nothing2hide.jmx . Log4jConfigurator "/> 

În acest moment, o dată deployata nostru de cerere, vom avea la dispoziţie MBean "n2h: log4jConfigurator" prin orice JMX consola va vom pune la dispoziţie toate metodele de clasa "Log4jConfigurator."

Aboneaza-mi Feed-uri RSS Ai dori acest articol? Aboneaza-te acum Feed-uri RSS!


Tot no comment "

RSS pentru comentariile acestui post. Trackback URI

Lăsaţi un comentariu

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


Valid XHTML şi CSS. ^ Sus


Închide
Trimite prin e-mail