Bu, AspNet Core'daki kuruculara ILogger veya ILoggerFactory ile ilgili olabilir mi? ancak bu, özellikle Kitaplık Tasarımı ile ilgilidir , bu kitaplıkları kullanan gerçek uygulamanın günlük kaydını nasıl gerçekleştirdiği ile ilgili değildir.
Nuget aracılığıyla yüklenecek bir .net Standart 2.0 Kitaplığı yazıyorum ve bu Kitaplığı kullanan kişilerin bazı hata ayıklama bilgilerini almasına izin vermek için, standartlaştırılmış bir Kaydedicinin enjekte edilmesine izin vermek için Microsoft.Extensions.Logging.Abstractions'a güveniyorum .
Ancak, birden çok arabirim görüyorum ve web üzerinde örnek kod bazen ILoggerFactory
sınıfın ctor'unda bir günlükçü kullanıyor ve oluşturuyor. ILoggerProvider
Fabrikanın salt okunur bir sürümü gibi görünen bir de var , ancak uygulamalar her iki arayüzü de uygulayabilir veya uygulamayabilir, bu yüzden seçmem gerekir. (Fabrika, Sağlayıcıdan daha yaygın görünüyor).
Gördüğüm bazı kodlar, jenerik olmayan ILogger
arayüzü kullanıyor ve hatta aynı logger'ın bir örneğini paylaşıyor olabilir ve bazıları ILogger<T>
kendi ctor'unu alıyor ve DI kapsayıcısının açık genel türleri veya ILogger<T>
kütüphanemdeki her varyasyonun açık kaydını desteklemesini bekliyor. kullanımları.
Şu anda, bunun ILogger<T>
doğru yaklaşım olduğunu düşünüyorum ve belki de bu argümanı almayan ve onun yerine bir Null Logger geçiren bir ctor. Bu şekilde, günlük kaydı gerekmiyorsa, hiçbiri kullanılmaz. Bununla birlikte, bazı DI kapları en büyük ctoru seçer ve bu nedenle yine de başarısız olur.
Kullanıcılar için en az miktarda baş ağrısını yaratmak için burada ne yapmam gerektiğini merak ediyorum ve istenirse uygun günlük kaydı desteğine izin vermeye devam ediyor.