اشترك في النشرة الإخبارية أو لبلدي آر إس إس لتلقي التحديثات تلقائيا بلوق!

MBean لإحداث تغيير في مستوى الساخنة الجذوع Log4j



التغيير الساخنة (أي دون استئناف 'تطبيق الخادم) هو واحد من متطلبات عادة أكثر تواترا في تطوير تطبيقات المؤسسة في جاوة.
مع مرور الوقت أنني استطعت أن أرى ومحاولة إيجاد حلول مختلفة (أكثر أو أقل أنيقة) ولكن معظم الأوقات بل كانت شاقة وبوضوح ، وهذه الحقيقة هي دائما للاقتراع على ملفات التكوين أو عن طريق التذرع servlet يدويا لل إعادة تحميل الملف log4j.properties أو log4j.xml تغيير.
اليوم مع مساعدة من الربيع وخاصة الطبقة org.springframework.jmx.export.MBeanExporter "، يصبح من السهل حقا لتهيئة MBean يمكن أن يعرض كل الأساليب اللازمة لتلاعب ساخنة" المسجل ".

ونحن الآن تنفيذ التجزئة ؛ ما نحتاج إليه لتبدأ بسيطة هي الطبقة التي يمكن أن تعرض لأساليب التلاعب قاطعي الأخشاب :

  net.nothing2hide.jmx مجموعة ؛ استيراد java.util.Enumeration ؛ استيراد java.util.List ؛ استيراد java.util.Vector ؛ org.apache.log4j.Level الاستيراد ، استيراد org.apache.log4j.LogManager ؛ استيراد org.apache . log4j.Logger ؛ Log4jConfigurator العامة من الدرجة (/ ** * تعيين مستوى تسجيل الدخول إلى استعلام لهدف ومسجل الهدف المعلمة @ * اسم مسجل للتغيير * / enableInfo باطلة العامة (سلسلة هدف) (LogManager.getLogger (الهدف) . setLevel (Level.INFO) ؛) / ** * تعيين مستوى تسجيل الدخول إلى استهداف تحذر مسجل ل @* اسم المعلمة الهدف من ومسجل لتغيير * / enableWarn باطلة العامة (سلسلة هدف) (LogManager.getLogger (الهدف) . setLevel (Level.WARN) ؛) / ** * تعيين مستوى تسجيل الدخول إلى لخطأ الهدف ومسجل الهدف المعلمة @ * اسم مسجل للتغيير * / enableError باطلة العامة (سلسلة هدف) (LogManager.getLogger (الهدف) . setLevel (Level.ERROR) ؛) / ** * تعيين مستوى تسجيل الدخول إلى التصحيح لهدف ومسجل الهدف المعلمة @ * اسم مسجل للتغيير * / enableDebug باطلة العامة (سلسلة هدف) (LogManager.getLogger (الهدف) . setLevel (Level.DEBUG) ؛) / ** * تعيين مستوى تسجيل الدخول إلى الجذر للاستعلام ومسجل * / enableInfoGlobally العامة لاغية () (LogManager.getRootLogger (). setLevel (Level.INFO) ؛) / ** * مجموعة أرشيف المستوى لتحذير للالجذر مختلفان * / enableWarnGlobally العامة لاغية () (LogManager.getRootLogger (). setLevel (Level.WARN) ؛) / ** * تعيين مستوى تسجيل الدخول إلى خطأ لقاطعي الأخشاب والجذر * / الجمهور باطلة enableErrorGlobally () (LogManager.getRootLogger (). SetLevel (Level.ERROR) ؛) / ** * تعيين مستوى تسجيل الدخول إلى التصحيح للالجذر مختلفان * / enableDebugGlobally العامة لاغية () (LogManager.getRootLogger (). SetLevel (Level.DEBUG (؛)) / ** * @ العودة للقائمة كل ما هو متاح من قطع الاشجار * / سلسلة العامة listAvailableLoggers () (تعداد en LogManager.getLoggerRepository = (). GetCurrentLoggers () ؛ StringBuffer القرار الجديد StringBuffer = () ؛ بينما (en.hasMoreElements () () المسجل ومسجل = (المسجل) en.nextElement () ؛ res.append (logger.getName ()). تذييل ( "ن") ؛) العودة res.toString ()؛)) 

الخطوة التالية في التصدير من الدرجة الاولى "Log4jConfigurator" MBean من خلال الربيع :

  <beanid="myMBeansExporter" class="org.springframework.jmx.export.MBeanExporter" lazy-init="false"> <propertyname="beans"> <map><الدخول الرئيسية = "n2h : اسم = log4jConfigurator" القيمة المرجع = "log4jConfigurator" /> </ الخريطة> </ ممتلكات> <propertyname="registrationBehaviorName" value="REGISTRATION_REPLACE_EXISTING" /> </ الفول> <الفاصوليا هوية = "log4jConfigurator" الطبقة = "net.nothing2hide.jmx . Log4jConfigurator "/> 

وعند هذه النقطة ، نشر طائراتنا تطبيق مرة واحدة ، لدينا MBean "n2h : log4jConfigurator" من خلال أي JMX تعزية ستوفر جميع أساليب الطبقة "Log4jConfigurator".

اشترك في بلدي آر إس إس هل مثل هذه المادة؟ آر إس إس اشترك الآن!


لا تزال لا تعليق '

التعليقات آر إس إس لهذا المنصب. TrackBack العنوان

ترك تعليق

الأقسام المختلفة : <ahref="" title=""> <abbrtitle=""> <acronymtitle=""> <b><blockquotecite=""> <cite><code>إيديل datetime = ""> <em><i><qcite=""> <strike><strong>


صحيح الأقسام المختلفة والمغلق. ^ أعلى ^


إغلاق
إرسال البريد الإلكتروني