SORU
16 Mart 2009, PAZARTESİ


Yinelenen log4net günlük ortadan kaldırmak

Birçok log4net çağırır "" kaydediciler. myprogram için yapan bir program var Ayrıca diğer kaydediciler için log4net çağrıları yapan başka bir kod çağırır. Tüm BİLGİLERİ daha yüksek günlükleri "" daha her şey için. UYARMAK daha günlükleri myprogram için yakalamak istiyorum Bu şekilde, üzerinde çalışıyorum göreve çalışmaları devam ediyor özel mesajlar alıyorum, ama hala potansiyel olarak kötü şeyler destekleyen kod olay bildirim. Bu Konsol ve bir günlük dosyası hem de gönderilmesini istiyorum.

Aşağıdaki log4net config var:

<log4net>
    <root>
        <level value="WARN" />
        <appender-ref ref="Console" />
        <appender-ref ref="LogFile" />
    </root>
    <logger name="myprogram">
        <level value="INFO" />
        <appender-ref ref="Console" />
        <appender-ref ref="LogFile" />
    </logger>
    <appender name="Console" type="log4net.Appender.ConsoleAppender">
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%message%newline" />
        </layout>
        <threshold value="INFO" />
    </appender>
    <appender name="LogFile" type="log4net.Appender.RollingFileAppender">
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="- %utcdate %level %logger %ndc %thread %message%newline" />
        </layout>
        <appendToFile value="false" />
        <staticLogFileName value="true" />
        <rollingStyle value="Once" />
        <file value="mylogfile" />
        <immediateFlush value="true" />
        <threshold value="INFO" />
        <lockingModel type="log4net.Appender.FileAppender MinimalLock" />
    </appender>
</log4net>

Bu bana çok mantıklı geldi: log >Her şeyi ve ^ için UYARMAK . Bu özel BİLGİ "myprogram" logger.

Sorun BİLGİ mesajları günlüğe alıyorumiki kezKonsol ve Günlük dosyası hem de. Bu sadece <root> <logger> Her iki unsurları olsa da dolu olursa var olur; ben de bir kaldırırsanız, o zaman geriye kalan tek beklediğim gibi çalışır.

Ben iyi olsaydım başlarken çift giriş UYARMAK girişleri (beri myprogram maçlar hem de "kök" ve "myprogram"), ama oluyor İNFO rağmen KÖK (muhtemelen) ayarlamak için UYAR.

Burada yanlış bir şey yapıyorum, ya da bu log4net hata/bir belirsizlik mi?

CEVAP
16 Mart 2009, PAZARTESİ


Bu değişiklik ile, yanlış additivity ayarlamayı deneyin.

<root>
    <level value="WARN" />
    <appender-ref ref="Console" />
    <appender-ref ref="LogFile" />
</root>
<logger name="myprogram" additivity="false">
    <level value="INFO" />
    <appender-ref ref="Console" />
    <appender-ref ref="LogFile" />
</logger>

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BumbleDroid

    BumbleDroid

    18 EKİM 2010
  • EmperorTigerstar

    EmperorTiger

    14 EYLÜL 2009
  • Jason Parker

    Jason Parker

    14 Aralık 2009