के रूप में शब्द "जावा लॉगिंग फ्रेमवर्क" अक्सर java.util.logging, slf4j, logback, log4j, कॉमन्स-प्रवेश, logkit जैसे आधुनिक प्रवेश चौखटे साथ जुड़ा हुआ है प्रलेखन, सही है, आदि
यह सही है, जेटी उन में से किसी का भी उपयोग नहीं करता है।
जेटी लॉगिंग मानकीकृत लॉगिंग ढांचे पर उन प्रयासों के सभी से पूर्व निर्धारित करता है। (जेटी, और इसकी लॉगिंग परत 1 99 5 में बनाई गई थी)
यह जेटी लॉगिंग (और is documented प्रलेखन साइट पर) सेटअप और कॉन्फ़िगरेशन के संबंध में करता है।
डिफ़ॉल्ट व्यवहार:
- slf4j तो अपने classpath में मौजूद है, यह Slf4jLog हैंडलर का उपयोग कर संभाल करने slf4j करने के लिए लॉगिंग घटनाओं फेंकना होगा।
- StdErrLog पर फ़ॉलबैक, System.err पर उत्सर्जित।
कॉन्फ़िगर करें:
- प्रवेश कार्यान्वयन आप उपयोग करना चाहते हैं निर्दिष्ट करें। विकल्प हैं:
यह 3 अलग अलग तरीकों
- में पूरा किया जा सकता लॉगिंग impl
स्थापित करने के लिए एक प्रणाली का उपयोग करते हुए संपत्ति
# 3 different options
-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog
-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog
-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.JavaUtilLog
- classpath से पाया/विन्यास
jetty-logging.properties
स्वयं का उपयोग करता है।
Example from jetty project itself:
# Configure for System.err output
org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog
# Configure StdErrLog to log all jetty namespace at default of WARN or above
org.eclipse.jetty.LEVEL=WARN
# Configure StdErrLog to log websocket specific namespace at DEBUG or above
org.eclipse.jetty.websocket.LEVEL=DEBUG
- स्थापित करने के लिए
Log.setLog(Logger)
यह embedded-jetty
import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.log.StdErrLog;
Log.setLog(new StdErrLog());
का उपयोग करने वालों के लिए विशेष रूप से उपयोगी है कोड का उपयोग करना सलाह और नोट्स:
आपके जेटी सर्वर स्टार्टअप का आउटपुट आपको लॉगिंग कार्यान्वयन के बारे में संकेत देगा।
सामान्य/डिफ़ॉल्ट व्यवहार:
2014-09-11 10:48:38.726:INFO::main: Logging initialized @378ms
2014-09-11 10:48:39.067:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:/Users/joakim/Code/Jetty/distros/jetty-distribution-9.2.1.v20140609/demo-base/webapps/] at interval 1
सूचना है कि यह या तो कोई नाम स्थान घोषणा, या इसके उत्पादन में भारी संक्षिप्त नाम स्थान है। यह मुझे बताता है कि StdErrLog
उपयोग में है।
तो slf4j उपयोग में है:
10:50:18.871 [main] INFO org.eclipse.jetty.util.log - Logging initialized @352ms
10:50:19.102 [main] INFO o.e.j.d.p.ScanningAppProvider - Deployment monitor [file:/Users/joakim/Code/Jetty/distros/jetty-distribution-9.2.1.v20140609/demo-base/webapps/] at interval 1
यह slf4j
के लिए एक डिफ़ॉल्ट Console appender उत्पादन होता है ->logback
। यहां समग्र संरचना बहुत अलग है कि StdErrLog
क्या उत्पादन करता है, इसलिए अब मैं बता सकता हूं कि जेटी Slf4jLog
कार्यान्वयन के माध्यम से उत्सर्जित हो रही है।
ग्रेट उत्तर, लेकिन इन सभी को आजमाने के बाद भी मैं डीबग लॉग संदेशों को देखने में असमर्थ हूं। मैंने logger.setDebugEnabled (true) का उपयोग करके डीबग सेट करने का प्रयास किया, लेकिन जब मैं 'logger.debug ("कुछ संदेश", नया अपवाद ") करता हूं, मुझे कोई आउटपुट नहीं मिलता है। जब मैं जानकारी() या चेतावनी() का उपयोग करता हूं हालांकि। –
लॉगिंग स्तरों का कॉन्फ़िगरेशन आपके द्वारा चुने गए लॉगर कार्यान्वयन द्वारा निर्धारित किया जाता है। StdErrLog को अपने गुणों को 'जेटी-लॉगिंग.प्रोपर्टीज' में रखा जाता है। java.util.logging के साथ पूरी तरह से java.util.logging में किया जाता है, slf4j के साथ, आपके द्वारा चुने गए चुने गए slf4j कार्यान्वयन (जैसे कि slf4j-log12 का मतलब होगा कि आपका log4j.xml इसे नियंत्रित करता है) आदि ... –
slf4j काम करने के लिए lib फ़ोल्डर में उचित जार जोड़ना। मेरी जेटी 9.3.8 में केवल sfl4j-api है और Slf4jLog दस्तावेज़ बताता है कि डिफ़ॉल्ट रूप से NOPlogger का उपयोग किया जाता है। –