2010-11-03 14 views
5

मेरे पास 2 लॉगिंग फ़ाइलें हैं। मैंने दो फाइलों के लिए दो एपेंडर परिभाषित किए हैं। एक कक्षा में, अगर मुझे एक फ़ाइल में कुछ लॉग आउटपुट करने की आवश्यकता है, और कुछ दूसरे के लिए, तो मुझे 2 लॉगर उदाहरण होने की आवश्यकता है। क्या इस आवश्यकता को प्राप्त करने का एक साफ तरीका है? या क्या कुछ log4j कॉन्फ़िगरेशन है जो मेरी मदद करेगा?लॉग 4j एकाधिक फाइलें

उत्तर

4

आप की तरह के बाद दो नामित वालों बना सकते हैं:

log4j.logger.system=debug, sys 

log4j.appender.sys=org.apache.log4j.RollingFileAppender 
log4j.appender.sys.file=/logs/system.log 
log4j.appender.sys.maxFileSize=1MB 
log4j.appender.sys.maxBackupIndex=25 
log4j.appender.sys.layout=org.apache.log4j.PatternLayout 
log4j.appender.sys.layout.conversionPattern=%d{MMM dd HH:mm:ss} %-5p (%F:%L) - %m%n 

जो आप का पता लगाने और कोड से उपयोग कर सकते हैं:

Logger.getLogger("system").debug("..."); 
+0

+1 पर मुझे एक संदर्भ की आवश्यकता है! – shareef

+0

लेकिन यह काम किया;) संदर्भों में देखने से यह आसान है – shareef

0

इस लॉग छानने गंभीरता के आधार पर किया जाता है, तो आप एक परिभाषित कर सकते हैं प्रत्येक एपेंडर के लिए अलग-अलग लॉग स्तर (डेबग, सूचना, चेतावनी, आदि)।

यदि आप एक अलग फ़िल्टरिंग चाहते हैं, तो आप एक व्यक्तिगत लॉग फ़िल्टर बना सकते हैं, और इस फ़िल्टर को अपने एपेंडर पर लागू कर सकते हैं। http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/spi/Filter.html

संबंधित मुद्दे