FileHandler का थोड़ा भ्रमित पैटर्न संपत्ति इस
handlers=java.util.logging.FileHandler
# Default global logging level.
.level=INFO
#logging level for the foo.bar package
foo.bar.level=CONFIG
java.util.logging.FileHandler.pattern=%h/java%u.log
एक पैटर्न एक स्ट्रिंग है जो निम्न विशेष घटक है कि क्रम से बदल दिया जाएगा शामिल होते हैं के लिए इस्तेमाल किया जा सकता है:
"/" स्थानीय पथ विभाजक
"% t" प्रणाली अस्थायी निर्देशिका
"% ज" "user.home" प्रणाली प्रोप का मूल्य erty
"% जी" घुमाया लॉग
"% u" भेद करने के लिए पीढ़ी नंबर एक अद्वितीय संख्या को हल करने संघर्ष
"%%" एक ही प्रतिशत चिह्न के लिए अनुवाद "%"
आप एक से अधिक फ़ाइलों को लॉग इन करना चाहते हैं तो आप यह कई संचालकों की स्थापना द्वारा कई नामित वालों
#FileHandler for file1
java.util.logging.FileHandler.pattern = logging_property_test.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
#FileHandler for file2
logging.FileHandler2.pattern = logging_property_test2.log
logging.FileHandler2.limit = 50000
FileHandler.count = 1
logging.FileHandler2.formatter = java.util.logging.SimpleFormatter
#setting handler for logger1
logging.PropertyTestingLogger.handlers=java.util.logging.FileHandler
#setting handler for logger2
logging.PropertyTestingLogger2.handlers=logging.FileHandler2
के लिए क्या कर सकते हैं आप देख सकते हैं चाल है कि वहाँ है एक logging.FileHandler2 कि एक कस्टम वर्ग है और कुछ नहीं करता है लेकिन FileHandler
package logging;
import java.io.IOException;
import java.util.logging.FileHandler;
public class FileHandler2 extends FileHandler {
public FileHandler2() throws IOException, SecurityException {
super();
}
}
पृष्ठभूमि लागू होता है: दुर्भाग्य से जावा के रचनाकारों की अपेक्षा नहीं थी किसी को भी एक से अधिक फ़ाइलों में प्रवेश करने की। आप java.util.logging.FileHandler के स्रोत को देखें, तो आप पाएंगे, उस पैटर्न संपत्ति वर्ग के नाम से भरी हुई है:
public class FileHandler extends StreamHandler {
private String pattern;
private void configure() {
String cname = getClass().getName();
pattern = manager.getStringProperty(cname + ".pattern", "%h/java%u.log");
स्रोत
2011-11-23 21:28:16
लेकिन मैं इस पैटर्न का उपयोग यह निर्दिष्ट करने के लिए कैसे कर सकता हूं कि यह केवल मेरे नामित लॉगर (org.imixs.workflow) के लिए प्रभावित होता है? मैं सामान्य सर्वर संदेशों को अपने एप्लिकेशन विशिष्ट लॉग फ़ाइल में रीडायरेक्ट नहीं करना चाहता हूं। – Ralph
मैंने तदनुसार अपनी पोस्ट अपडेट की। उदाहरण में डिफ़ॉल्ट लॉग स्तर जानकारी पर सेट है, लेकिन foo.bar पैकेज –
कॉन्फ़िगर करने के लिए हाँ - लेकिन मेरा प्रश्न है: क्या लॉगजर 'foo.bar' के लिए एक अलग आउटपुट फ़ाइल सेट करना संभव है। मुझे पता है कि आप प्रत्येक पैकेज के लिए एक अलग लॉग स्तर निर्दिष्ट कर सकते हैं। लेकिन अलग लॉग फाइलों को कैसे परिभाषित किया जाए? – Ralph