في المقالة السابقة ، قمت بتقديمك إلى البرنامج التعليمي التفصيلي على Java Log4J. لمزيد من التفاصيل ، يرجى الاطلاع أدناه.
أولاً ، نوفر لك تنزيل log4j.jar: http://logging.apache.org/log4j/1.2/download.html
1. استخدم Log4J لمشروع الويب Java
1. أضف في ملف web.xml
<!-تكوين log4j-> <context-param> <Param-name> webapprootkey </param-name> <param-value> com.hsinghsu.testssh.webapp.root </param-value> </contex t -param> <context-param> <param-name> log4jConfigLocation </param-name> <param-value> /web-inf/classes/log4j.properties </parm-value> </context-par am> <context -Param> <Param-Name> log4jrefreshinterval </param-name> <param-value> 600000 </param-value> </sectext-param>
2. إضافة ملف log4j.properties
log4j.rootcategory = info ، stdout ، r log4j.appender.stdout = org.apache.log4j.consoleappender log4j.appender.stdout.layout = org.apache.log4j.p atternlayout log4j.stdout.layout.convers ] ٪ p [٪ t] ٪ C. ٪ m (٪ l) | Avatar .log ## Linux سجلات ملفات ملف #log4j.appender.r.file = $ {com.hsinghsu.testssh.webapp.root} /log/testlog.log ## windows path path log4j.appender .r.file = d: //eclipsespace//testsssh//webcontent//web-inf//testlog.log log4j.appender.r.layout = org.apache.log4j.patternlayout #log4j.appender.r.lay out.conversionpattern = ٪ d d -. j.logger .org.apache.commons = خطأ #log4j.logger.org.apache.struts = warn #log4j.logger.org.displaytag = خطأ #log4j.logger.org.springframework = inf o #log4j.logger. com.ibatis. org.hibernate = debug log4j.logger.org.hibernate = info #log4j.logger.org.logicalCobWebs = Warn
3. استخدم log4j
على سبيل المثال ، استخدم log4j في userviceiMpl.java.
حزمة com.hsinghsu.testssh.mpl ؛ dao .userdao ؛ logger static logger = logger.getLogger (userviceImpl.Class) ؛ - uSperServiceImpl تسجيل الدخول اسم طريقة: "+name+" كلمة المرور: "+كلمة المرور) ؛ المستخدم = userDao.getUserByName (name) ؛ if (user! = null) {if (passwor d.equals (user.getpwd ())) {return true ؛
2. شرح مفصل للمعلمات log4j.properties
تنقسم مستويات السجل إلى تصحيح الأخطاء (معلومات التصحيح) ، والمعلومات (المعلومات العامة) ، والتحذير (معلومات التحذير) ، والخطأ (معلومات الخطأ) ، والميتال (معلومات الخطأ المميتة).
يدعم Log4J تنسيقات ملفات التكوين ، أحدهما هو ملف تنسيق XML ، والآخر هو ملف خاصية Java log4j.properties.
1. تكوين مسجل الجذر
المسجل مسؤول عن التعامل مع معظم عمليات التسجيل ، وبناء الجملة هو:
log4j.rotlogger = [المستوى] ، appenderName1 ، appenderName2 ، ...
المستوى: هي أولوية تسجيل الدخول ، مقسمة إلى إيقاف ، قاتلة ، خطأ ، تحذير ، معلومات ، تصحيح ، كل أو المستوى الذي تحدده.
AppenderName: هو اسم وجهة إخراج معلومات السجل المحددة.
على سبيل المثال: log4j.rotlogger = info ، a1 ، b2 ، c3
في إصدارات Log4J المبكرة ، نفذت org.apache.category وظيفة المسجل ، ثم تمديد فئة الفئة باستخدام logger ، لذلك يمكن أيضًا استخدام log4j.rootcategory.
على سبيل المثال: log4j.rootcategory = info ، a1 ، a2
2. قم بتكوين جهد الوجهة لإخراج معلومات السجل
Appender مسؤول عن التحكم في إخراج عمليات التسجيل ، وبناء الجملة الخاص به هو:
log4j.appender.appendername = common.qualified.name.of.appender.class
من بينهم ، "common.qualified.name.of.appender.class" لديه الأنواع التالية:
i.org.apache.log4j.consoleppender (وحدة التحكم)
هناك عدة خيارات:
عتبة = تحذير: يحدد أدنى مستوى من إخراج رسائل السجل.
ForeriateFlush = صحيح: القيمة الافتراضية صحيحة ، مما يعني أن جميع الرسائل سيتم إخراجها على الفور.
Target = system.err: افتراضيًا ، إنه: System.out ، حدد وحدة التحكم في الإخراج
ii.org.apache.log4j.fileappender (ملف)
هناك عدة خيارات:
عتبة = تحذير: يحدد أدنى مستوى من إخراج رسائل السجل.
ForeriateFlush = صحيح: القيمة الافتراضية صحيحة ، مما يعني أن جميع الرسائل سيتم إخراجها على الفور.
file = mylog.txt: يحدد أن الرسالة يتم إخراجها إلى ملف mylog.txt.
إلحاق = خطأ: القيمة الافتراضية صحيحة ، مما يعني إضافة الرسالة إلى الملف المحدد.
iii.org.apache.log4j.dailyrollingfileappender (يولد ملف سجل واحد كل يوم)
هناك عدة خيارات:
عتبة = تحذير: يحدد أدنى مستوى من إخراج رسائل السجل.
ForeriateFlush = صحيح: القيمة الافتراضية صحيحة ، مما يعني أن جميع الرسائل سيتم إخراجها على الفور.
ملف = A.Log: يحدد أن الرسالة يتم إخراجها إلى ملف A.Log ، والذي يبدأ من مسار الجذر لخادم الويب بشكل افتراضي.
إلحاق = خطأ: القيمة الافتراضية صحيحة ، مما يعني إضافة الرسالة إلى الملف المحدد.
DatePattern = '.' Yyyy-WW: قم بتمرير الملف مرة واحدة في الأسبوع ، أي إنشاء ملف جديد كل أسبوع. بالطبع ، يمكنك أيضًا تحديد شهريًا وأسبوعًا وليومًا ووقتًا ودقيقة. أي أن التنسيق المقابل هو كما يلي:
'.'yyyy-mm: شهريًا
'.'yyyy-ww: أسبوعيًا
'.'yyyy-mm-dd: كل يوم
'.'yyyy-mm-dd-a: مرتين في اليوم
'.'yyyy-mm-dd-hh: كل ساعة
'.'yyyy-mm-dd-hh-mm: في الدقيقة
iv.org.apache.log4j.rollingfileappender (يتم إنشاء ملف جديد عندما يصل حجم الملف إلى الحجم المحدد. يمكنك تعيين حجم الملف بواسطة log4j.appender.AppenderName.maxfilesize = 100kb)
هناك عدة خيارات:
عتبة = تحذير: يحدد أدنى مستوى من إخراج رسائل السجل.
ForeriateFlush = صحيح: القيمة الافتراضية صحيحة ، مما يعني أن جميع الرسائل سيتم إخراجها على الفور.
ملف = A.Log: يحدد أن الرسالة يتم إخراجها إلى ملف A.Log ، والذي يبدأ من مسار الجذر لخادم الويب بشكل افتراضي.
إلحاق = خطأ: القيمة الافتراضية صحيحة ، مما يعني إضافة الرسالة إلى الملف المحدد.
MaxFilesize = 100kb: يمكن أن تكون اللاحقة KB أو MB أو GB.
MaxBackupIndex = 2: يحدد الحد الأقصى لعدد ملفات التمرير التي يمكن إنشاؤها.
v.org.apache.log4j.writerappender (أرسل معلومات السجل بتنسيق دفق إلى أي مكان محدد)
على سبيل المثال:
log4j.appender.r = org.apache.log4j.dailyrollingfilePender
log4j.appender.r.file = d: //eclipsspace//testssh//webcontent//web-inf//testlog.log
3. تكوين تنسيق (تخطيط) معلومات السجل
التصميم مسؤول عن تنسيق إخراج الجسدي ، وبناء الجملة الخاص به هو:
log4j.appender.appendername.layout = common.qualified.name.of.layout.class
من بينها ، "common.qualified.name.of.layout.class" لديه الأنواع التالية:
i.org.apache.log4j.htmllayout (تخطيط في نموذج جدول HTML)
هناك عدة خيارات:
الموقع = صحيح: القيمة الافتراضية خاطئة ، إخراج اسم ملف Java ورقم السطر
title = ملف التطبيق الخاص بي: القيمة الافتراضية هي رسائل سجل log4j.
ii.org.apache.log4j.patternlayout (يمكن تحديد وضع التخطيط بمرونة)
هناك عدة خيارات:
ConversionPattern = ٪ m ٪ n: يحدد كيفية تنسيق الرسالة المحددة.
-رقم x: المحاذاة اليسرى عند إخراج x المعلومات ؛
٪ P: أولوية معلومات سجل الإخراج ، أي تصحيح ، معلومات ، تحذير ، خطأ ، قاتلة ،
٪ D: تاريخ أو وقت السجل هو الإخراج. مماثل: 18 أكتوبر 2002 اليوم 22:10:28 ، 921
٪ R: عدد المللي ثانية للإخراج من بدء التشغيل إلى إخراج معلومات السجل هذه
٪ ج: الفئة التي تنتمي إليها معلومات سجل الإخراج هي عادة الاسم الكامل للفئة
٪ T: إخراج اسم الخيط الذي يولد حدث السجل
٪ L: يحدث حدث سجل الإخراج في موقع حدوث ٪ C. ٪ M (٪ F: ٪ L) ، بما في ذلك اسم الفئة وخيط الحدوث وعدد الخطوط في الكود. مثال: testlog4.main (testlog4.java:10)
٪ X: ناتج NDC (بيئة تشخيصية NESHED) المرتبطة بالخيط الحالي ، وخاصة في التطبيقات مثل Java Servlets مع متعددة العوامل ومتعددة الخيوط.
٪٪: إخراج حرف "٪"
٪ F: اسم الملف حيث تم إنشاء رسالة سجل الإخراج
٪ L: رقم السطر في رمز الإخراج
٪ م: الرسالة المحددة في رمز الإخراج ومعلومات السجل المحددة التي تم إنشاؤها
٪ n: إخراج كسر خط الإرجاع في النقل ، نظام Windows هو "/r/n" ، يمكن إضافة منصة UNIX "/n" لإخراج كسر خط معلومات السجل بين ٪ وأحرف الوضع للتحكم في الحد الأدنى لعرضه وأقصى عرض. العرض ، ومحاذاة النص. يحب:
٪ 20C: يحدد اسم فئة الإخراج ، والحد الأدنى هو 20
٪ -20C: يحدد اسم فئة الإخراج.
٪ .30C: حدد اسم فئة الإخراج. لا تكون مسافات.
٪ 20.30C: إذا كان اسم الفئة أقل من 20 ، فملأ المساحة ومحاذاة اليمين.
على سبيل المثال: ٪ -4r ٪ -5p ٪ d {Yyyy-MM-DD HH: MM: SSS} ٪ C ٪ M ٪ N
[Test] ٪ P [٪ T] ٪ C. ٪ M (٪ L) |
iii.org.apache.log4j.simplelayout (يحتوي على مستوى وسلسلة المعلومات من معلومات السجل)
iv.org.apache.log4j.ttcclayout (بما في ذلك الوقت ، الخيط ، الفئة ، إلخ. من توليد السجل)
4. آخرون
log4j.logger.com
حدد أن جميع الفئات تحت حزمة com.neusoft هي تصحيح الأخطاء.
log4j.logger.com.opensymphony.oscache = خطأ
log4j.logger.net.sf.navigator = خطأ
تضع هاتان الجملان مستوى الأخطاء التي تحدث تحت الحزمتين إلى الخطأ.
log4j.logger.org.apache.commons = خطأ
log4j.logger.org.apache.struts = تحذير
هاتان الجملتان هما حزمة الدعامات.
log4j.logger.org.displaytag = خطأ
هذه الجملة هي حزمة DisplayTag. (تستخدم في صفحة قائمة أسئلة QC)
log4j.logger.org.springframework = debug
هذه الجملة هي حزمة الربيع.
log4j.logger.org.hibernate.ps.preparedStatementCache = تحذير
log4j.logger.org.hibernate = debug
هاتان الجملتان هما حزمة السبات.
3. اكتب سجلات إلى ملفات متعددة.
تكوين log4j:
log4j.rootcategory = info ، stdout
log4j.appender.stdout = org.apache.log4j.consoleppender
log4j.appender.stdout.layout = org.apache.log4j.patternlayout
log4j.appender.stdout.layout.conversionpattern = ٪ d {yyyy-mm-dd hh/: mm/: ss ، ss} [colorclouds] ٪ p [٪ t] ٪ c (٪ l) | ن
log4j.logger.net.sf.navigator = info
log4j.logger.org.springframework = معلومات
log4j.logger.runlogger = info ، r
log4j.appender.r = org.apache.log4j.rollingfileappender
log4j.appender.r.file = g: //log//runlog.log
log4j.appender.r.maxfilesize = 51200 كيلو بايت
#log4j.appender.r.file = $ {com.huawei.icity.webapp.root} /log/icity.log
log4j.appender.r.layout = org.apache.log4j.patternlayout
log4j.appender.r.layout.conversionpattern = ٪ d {yyyy-mm-dd hh/: mm/: ss ، ss} ٪ ن
#log4j.logger.businesslogger = info ، b
#log4j.appender.b = org.apache.log4j.rollingfileappender
#log4j.appender.b.file = g: //log//businesslog.log
#log4j.appender.b.maxfilesize = 51200kb
#log4j.appender.b.layout = org.apache.log4j.patternlayout
#log4j.appender.b.layout.conversionpattern = ٪ d {yyyy-mm-dd hh/: mm/: ss ، ss} [colorclouds business] ٪ p [٪ t] ٪ c م ٪ ن
log4j.logger.Interfacelogger = info ، i
log4j.appender.i = org.apache.log4j.rollingfileappender
log4j.appender.i.file = g: //log//interfacelog.log
log4j.appender.i.maxfilesize = 51200 كيلو بايت
log4j.appender.i.layout = org.apache.log4j.patternlayout
log4j.appender.i.layout.conversionpattern = ٪ d {yyyy-mm-dd hh/: mm/: ss ، ss} ٪ ن
مكالمة جافا:
استيراد org.apache.commons.log.log ؛ getLog ("runlogger") ؛ // قم بتشغيل سجل السجل الثابت الخاص interfacelog = logfactory.getLog ("interfacelogger") ؛ // interface log remsute () remseve {interfacelog.info ("==== >> request ") ؛ runlog.info (" طلب 02 ") ؛ إرجاع super.execute () ؛}}
فيما يلي طريقة لتكوين log4j في مشروع ويب
1. تغيير مستوى مستوى السجل والسياسة ديناميكيًا ، وليس هناك حاجة لإعادة تشغيل تطبيق الويب ، كما هو مذكور في "Java المؤسسة الفعالة".
2. قم بتعيين ملف السجل على/Web-Inf/Logs/دون كتابة مسار مطلق.
3. يمكنك وضع log4j.properties وغيرها من الخصائص مع / web-inf / بدلاً من class path.
إضافة في web.xml
<!-إذا لم يتم تعريف معلمة WebAppRootkey ، فإن WebAppRootkey هو الافتراضي "webapp.root"->
<Context-param> <Param-Name> webapprootkey </param-name> <param-value> xxx.root </param-value> </sontext-param> <context-param> <param-name> log 4jconfiglocation < /param-name> <Param-value> web-inf/log4j.properties </param-value> </suctext-param> <context-param> <Param-name> log4jrefreshinterval </parm-name> <param-value > 60000 </param-value> </suctext-param> <stanker> <cleder-class> org.springframework.web.util.log4jConfigListener </stanker-class> </stanker>
في التكوين أعلاه ، ستقرأ Log4JConfigListener ملف التكوين في الويب/log4j.propeties ؛
افتح مؤشر ترابط الوكالة الدولية للطاقة لمسح ملفات التكوين كل 60 ثانية ؛
واضغط على مسار دليل الويب في متغير نظام يسمى webapp.root.
بعد ذلك ، يمكن تعريف موقع ملف السجل في log4j.properties
log4j.appender.logfile.file = $ {webapp.root} /web-inf/logs/myfuse.log
إذا كان هناك العديد من تطبيقات الويب وتخشى أن يتم تكرار متغيرات webapp.root ، فيمكنك تحديد WebApprootkey في Sontext-Param.
ما سبق هو مهارات هذه المقالة لتحليل تكوين Java Web Log4J وتكوين Log4J في مشاريع الويب.