İçeriğe geç

.Net İçinde Log4Net Kullanımı

Projelerimizde validation, authentication gibi katmanlarında yanında hata loglaması yapabilmek adına log katmanı da bulundurabiliriz. Bunun için çeşitli hazır sistemler mevcuttur. Örneğin Elmah, Log4Net gibi… projelerinizde Log4Net kullanmak için öncelikle gerekli olan dll dosyasını indirmeniz gereklidir. Dll dosyasını projenize referans olarak ekledikten sonra gerekli bazı ayarlamalar yapılmalıdır.

Log4Net için bazı xml bilgilerini belirlemeliyiz. Bunu dilerseniz app.config dosyası oluşturarak hazırlayabilirsiniz veya mevcut olan web.config dosyasının içine dahil edebilirsiniz.

  <configSections>
  <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,
    log4net" />
  </configSections>
  <log4net debug="false">
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender,log4net" >
      <param name="File" value="D:/log.txt" />
      <param name="AppendToFile" value="true" />
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n" />
      </layout>
    </appender>
    <root>
      <priority value="ALL" />
      <appender-ref ref="LogFileAppender" />
    </root>
    <category name="testApp.LoggingExample">
      <priority value="ALL" />
    </category>
  </log4net>

Burada görüldüğü gibi bazı parametreler veriyoruz. Örneğin log dosyasının nereye kayıt edileceğini belirleyebilirsiniz. Bunun yanında log tutma formatını belirleyebilirsiniz. <priority value=”ALL” /> şeklinde yazan kısım için kısıtlama getirmek mümkündür. Örneğin sadece hata mesajları log tutulsun gibi…
Bu düzenlemeden sonra bu config dosyasını tanıtmamız gereklidir.

       public static void Configuration(HttpContext context)
        {
            log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(context.Server.MapPath("Web.config")));
        }

Şimdi log kaydı yapabilmemiz için bir log nesnesi oluşturmalıyız.

        public static ILog MyLog
        {
            get
            {
                return log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
            }
        }

Bu aşamadan sonra log kaydı yapmak için bu nesnenin içinde bulunan Error metodunu kullanacağız. Dilerseniz log tipini ihtiyacınız doğrultusunda warnig, debug gibi seçerekte kullanabilirsiniz.

MyLog.("HATA: " + ex);

Kodlara ilişkin örneği incelemek için buradaki dosyayı indirebilirsiniz. İyi loglamalar dilerim 🙂

Tarih:Logging

2 Yorum

  1. Ugur Ugur

    Teşekkürler. Çok faydalı oldu.

  2. Merhabalar,

    Log4Net’i internet üzerinden başka blog yazılarından da okurken sizin yazınızı direkt kopyalayıp paylaşan bir Yazılım Geliştirme Uzmanı(!) na denk geldim. Haberiniz olsa iyi olur, emeğiniz sonuçta.

    İyi çalışmalar.

    https://www.karadasburak.com/c-ile-log4net-kullanimi/

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.