यह वही अगर आप लोकप्रिय प्रलेखन द्वारा सुझाए गए तरीके से लकड़हारा प्रारंभ हो जाएगा, और X
वर्ग के अंदर इसका इस्तेमाल:
Logger logger = Logger.getLogger(com.foo.X.class);
तो आप मिल जाएगा %c
और %C
के लिए एक ही है, क्योंकि लकड़हारा नाम ("com.foo.X.class.getName()" द्वारा निर्मित) वर्ग के नाम है, जहां एक प्रवेश बयान जारी किया गया था से मेल खाएगा।
अपने लकड़हारा "कुछ"
Logger logger = Logger.getLogger("something");
कॉल करें और आप %c
के लिए "कुछ" और %C
के लिए वर्ग के नाम होगा।
ध्यान दें कि %C
को वर्तमान थ्रेड के स्टैक ट्रेस से लॉग 4j द्वारा गणना की जाती है, इसलिए इसमें %c
के विपरीत, बड़े प्रदर्शन प्रभाव पड़ता है, जो कि केवल एक स्ट्रिंग है। आप इसे प्रमाणित करने के लिए एक दिलचस्प प्रयोग का संचालन कर सकते हैं:
package com.foo;
class A {
private Logger = Logger.getLogger(B.class);
// ...
logger.log("inside A class");
}
पैटर्न [%c][%m]
B
संभालने के लिए उत्पादन पैकेज com.foo
में है हो जाएगा:
[com.foo.B][inside A class]
पैटर्न [%C][%m]
के लिए उत्पादन B
के स्थान की परवाह किए बिना होगा हो:
[com.foo.A][inside A class]