मैं एक परियोजना में काम करता हूं जो Log4J का उपयोग करता है। प्रत्येक थ्रेड के लिए एक अलग लॉग फ़ाइल बनाने की आवश्यकता है; यह स्वयं एक अजीब मुद्दा था, कुछ हद तक फ्लाई पर एक नया FileAppender बनाकर और लॉगर इंस्टेंस को अटैच करके सॉर्ट किया गया। जब तक हम महसूस किया कि एक और पुस्तकालय उपयोग हमLog4J - SiftingAppender की तरह कार्यक्षमता
Logger logger = Logger.getLogger(<thread dependent string>);
FileAppender appender = new FileAppender();
appender.setFile(fileName);
appender.setLayout(new PatternLayout(lp.getPattern()));
appender.setName(<thread dependent string>);
appender.setThreshold(Level.DEBUG);
appender.activateOptions();
logger.addAppender(appender);
सब कुछ ठीक चला गया - Spring Framework v3.0.0 (जो का उपयोग Commons Logging) - स्प्रिंग लॉगिंग डेटा "देखा" है केवल initialised Appenders द्वारा - ऊपर तकनीक के साथ गेंद खेलने नहीं करता है log4.configuration फ़ाइल से लेकिन रनटाइम द्वारा परिशिष्ट नहीं बनाया गया। तो, वर्ग एक पर वापस।
कुछ जांच के बाद, मुझे लगता है कि नया पता चला और बेहतर LogBack एक appender है - SiftingAppender - जो वास्तव में क्या हम स्वतंत्र फाइलों पर अर्थात धागा स्तर प्रवेश की आवश्यकता है।
फिलहाल, लॉगबैक पर जाना एक विकल्प नहीं है, इसलिए, लॉग 4 जे के साथ फंस गया है, मैं सिफ्टिंग ऐपेंडर जैसी कार्यक्षमता कैसे प्राप्त कर सकता हूं और वसंत को भी खुश रख सकता हूं?
नोट: वसंत का उपयोग केवल JdbcTemplate कार्यक्षमता के लिए किया जाता है, कोई आईओसी नहीं;
निर्देश दिए here रूपlog4j.logger.org.springframework = डीबग
: क्रम में "हुक" वसंत के कॉमन्स Log4J लिए लॉग इन करना मैं log4j.properties फ़ाइल में इस लाइन जोड़ा है।
यदि आप केवल जेडीबीसी कार्यक्षमता के लिए वसंत का उपयोग कर रहे हैं, तो आप इसके बजाय apache commons-dbutils जैसे कुछ का उपयोग करने पर विचार करना चाहेंगे। –