Log4Net’i Sadece Info Seviyesinde Mesajları Günlüklemek Üzere Yapılandırma Nasıl Yapılır

Günlükleme, yazılım geliştirmede önemli bir parçadır ve geliştiricilerin uygulamaları verimli bir şekilde hata ayıklamasına yardımcı olur. Ancak, hangi bilgilerin günlüğe kaydedileceğini kontrol etmek zor bir iş olabilir. Eğer Log4Net’i sadece Info seviyesinde mesajlar kaydedecek şekilde yapılandırmanın bir yolunu arıyorsanız, doğru yerdesiniz! Bu blog yazısında, bunu başarmak için gereken adımları Log4Net’in yeteneklerini kullanarak size göstereceğiz.

Problem: Sadece Info Günlükleri İsteme

Log4Net’i Info seviyesinde günlüğe kaydedecek şekilde yapılandırmış olabilirsiniz, ancak yine de farklı seviyelerdeki (örneğin Debug veya Warn) mesajların kaydedildiğini görebilirsiniz. Bu da şu soruyu akla getirir: Log4Net’i sadece Info seviyesinde günlüklere sınırlamak mümkün mü? Cevap evet! Doğru yapılandırma ile gereksiz günlükleri filtreleyebilir ve temiz bir günlükleme çıktısı elde edebilirsiniz.

Log4Net Yapılandırmasını Anlamak

Log4Net’i etkili bir şekilde yapılandırmak için, yapısının anlaşılması önemlidir. Günlükleme yapılandırması genellikle XML formatında belirtilir. İşte sahip olabileceğiniz bir örnek yapılandırma:

<logger name="BrokerCollection.Model.XmlDocumentCreationTask">
  <appender-ref ref="SubmissionAppender"/>
  <level value="Info" />
</logger>

Bu kod parçasında, günlüğe alma seviyesinin Info olarak ayarlandığını görebilirsiniz, ancak bu tek başına bu seviye altında kalan günlükleri filtrelemez. Sadece Info kayıtlarını elde etme hedefinize ulaşmak için bir appender içine bir filtre eklememiz gerekecek.

Çözüm: Seviye Aralığı Filtre Kullanımı

Log4Net’i sadece Info seviyesindeki mesajları günlüğe kaydedecek şekilde sınırlamak için, appender yapılandırması içinde bir LevelRangeFilter uygulayabilirsiniz. İşte bunu nasıl ayarlayabileceğiniz:

Örnek Yapılandırma

Appender tanımınızı şu şekilde değiştirebilirsiniz:

<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
    <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="INFO"/>
        <param name="LevelMax" value="INFO"/>
    </filter>
    ...
</appender>

Bu yapılandırmada:

  • LevelMin: Kaydetmek istediğiniz mesajların minimum seviyesini belirtir (bizim durumumuzda INFO).
  • LevelMax: Kaydetmek istediğiniz mesajların maksimum seviyesini belirtir (sadece bu kayıtların yapılmasını sağlamak için yine INFO olarak ayarlanır).

Uygulama Adımları

  1. Log4Net yapılandırma dosyanızı bulun: Bu genellikle appender ve loggerların tanımlandığı bir XML dosyasıdır.
  2. Kullandığınız appender’ı belirleyin: Doğru appender’ı değiştirdiğinizden emin olun.
  3. Filtreyi ekleyin: Yukarıda gösterildiği gibi LevelRangeFilter kullanarak günlüklemeyi sadece Info seviyesi mesajlarla sınırlayın.
  4. Yapılandırmayı test edin: Farklı seviyelerde günlükler oluşturarak sadece Info günlüklerinin kaydedildiğinden emin olun.

Sonuç

Log4Net yapılandırmanızda LevelRangeFilter‘ı kullanarak, günlükleme çıktınızı sadece ilgili ve bilgilendirici mesajları gösterecek şekilde etkili bir şekilde sınırlayabilirsiniz. Bu, özellikle aşırı günlüklemenin karmaşa ve kafa karışıklığına yol açabileceği büyük uygulamalarda günlükleri yönetmeyi kolaylaştırır.

Artık bu yapılandırmayı Log4Net kurulumunuza uygulayabilirsiniz. İyi günlüklemeler!