Size belgeler önerdiği popüler şekilde logger başlatmak eğer aynı olması ve X
sınıf içinde kullanacağız:
Logger logger = Logger.getLogger(com.foo.X.class);
o zaman alırsınız %c
ve %C
için aynıdır, çünkü logger adı ("com.foo.X.class.getName()" tarafından oluşturulan), kayıt deyiminin verildiği sınıf adıyla eşleşir.
"bir şey"
Logger logger = Logger.getLogger("something");
arşivleyiciyi ara ve %c
için "bir şey" ve %C
için sınıf adını gerekecek.
Not: %C
,'dan farklı olarak, geniş bir performans etkisi taşıdığından log4j tarafından log4j tarafından hesaplanır. Bunu doğrulamak için ilginç bir deney yapabileceğiniz:
package com.foo;
class A {
private Logger = Logger.getLogger(B.class);
// ...
logger.log("inside A class");
}
B
varsayarak desen
[%c][%m]
için çıktı olacaktır paketin
com.foo
içindedir
:
[com.foo.B][inside A class]
bakılmaksızın B
yerinin desen [%C][%m]
için çıkış olacak yapmak için:
[com.foo.A][inside A class]