SORU
29 HAZİRAN 2010, Salı


Neden kaydediciler sınıf başına bir logger kullanmanızı tavsiye?

NLog belgelerine göre:

Çoğu uygulama logger adı sınıfın adı ile aynı olduğu her sınıf için bir tane logger kullanın.

Bu log4net çalışır aynı şekilde. Neden bu iyi bir uygulamadır?

CEVAP
29 HAZİRAN 2010, Salı


Log4net, kullanarak her sınıf için bir tane logger kolay günlük mesaj (örn. kaynağını yakalamak için yapar sınıf günlük yazma). Eğer her sınıf için bir tane logger yok eğer değil, ama bunun yerine tüm uygulama için bir logger var, daha fazla yansıma hileler için günlük iletileri nereden geldiğini biliyor başvurmak gerekir.

Aşağıdakileri karşılaştırın:

Sınıf başına günlük

using System.Reflection;
private static readonly ILog _logger = 
    LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);    

public void SomeMethod()
{
    _logger.DebugFormat("File not found: {0}", _filename);
}

Uygulama (veya benzer) başına bir logger

Logger.DebugFormat("File not found: {0}", _filename); // Logger determines caller

-- or --

Logger.DebugFormat(this, "File not found: {0}", _filename); // Pass in the caller

İkinci örnek olarak kullanarak, Logger iz kimin aradığını görmek için bir yığın veya Kodu her zaman arayanın geçmek zorunda olacağını inşa etmek gerekir. Logger başına sınıf stili ile, hala bunu yapmak, ancak arama başına sınıf başına bir kez yerine bir kez yap ve ciddi bir performans sorunu ortadan kaldırabilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Digital Bounds

    Digital Boun

    19 Temmuz 2013
  • KRQE

    KRQE

    6 AĞUSTOS 2007
  • Peyton

    Peyton

    28 Aralık 2008