Log4net'te Logger
sınıfında Priority
özelliği yoktur. Bulamadığım Priority
'un tek örneği SmtpAppender
idi. Yani ben kod içine gitti! Aşağıdaki kodu bulacaksınız XmlHierarchyConfigurator
ait ParseChildrenOfLoggerElement
yöntemde
:
if (xmlElement.LocalName == "level" || xmlElement.LocalName == "priority")
{
this.ParseLevel(xmlElement, log, isRoot);
}
Ah! Her iki değer de aynı özelliğe (ParseLevel
yönteminin, gerçekten devralınmayan bir değer olan "devralınan" değerinin atanması, günlüğe kaydedilmesi ve yönetimi dışında çok fazla bir şey yapmaz) bu yüzden orada var; "level" ve "priority", yapılandırmanıza aynı etkiyi verir. Bu this article about log4j tarafından desteklenen aslında kütüphanenin bir önceki sürümü ile geriye dönük uyumluluk çeşit tutmak için yapıldığını tahmin: log4j ilk versiyonlarında
bu kategori ve öncelik, denilen ama şimdi edildi sırasıyla logger ve level olarak adlandırılırlar.
// ...
XmlElement xmlElement = (XmlElement)xmlNode;
if (xmlElement.LocalName == "logger")
{
this.ParseLogger(xmlElement);
}
else
{
if (xmlElement.LocalName == "category")
{
this.ParseLogger(xmlElement);
}
else
{
if (xmlElement.LocalName == "root")
{
this.ParseRoot(xmlElement);
}
// ...
Demek böyle: logger gibi düzeyi ve öncelik, birbirleriyle değiştirilebilir biz "kategorisinde" için arama eğer
Nitekim, aşağıdaki kodu içeren XmlHierarchyConfigurator
bir Configure
yöntemi yoktur ve kategori.
İlginç bir ayrıntı: Geçen mülkiyet kazanır ve logger olabilir özelliklerin sayısı ile ilgili sınırlama yoktur, bu nedenle bu geçerlidir ve seviye
<root>
<priority value="ALL" />
<priority value="ERROR" />
<level value="DEBUG" />
</root>
Vay hata ayıklama için açardı. Teşekkürler. Ve, senin "ilginç tidbit" bir sonraki gizemi açıklıyor. Devralınan yapılandırma dosyalarından biri kök altında iki öncelikli öğeye sahipti. "Son mülk kazanır" ve test doğruladı, ama içgörü için teşekkürler. –
Bir şey değil, ilginç bir analiz oldu ve bu yanıttan ayrıştırma yapılandırmasıyla ilgili bazı işaretçilerim vardı: http://stackoverflow.com/questions/23634472/using-ioc-in-a-custom-log4net -appender/23649446 # 23649446 – samy