Logging - log4net

  • C#
  • .NET 5–6

    Logging - log4net

    Moin,

    ist hier zufällig jemand, der sich mit log4net auskennt?

    Für mein Projekt habe ich l4n eingerichtet und es funktionierte so wie ich es mir gedacht habe. Zunächst hatte ich nur den RollingFileAppender im Einsatz. Seit gestern oder vorgestern scheint nun irgendwas innerhalb von log4net zerbrochen. Es gibt nur noch Einträge vom Level INFO. Alle anderen werden verschluckt. Meine Konfguration. Level steht auf "ALL"!

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8" ?>
    2. <log4net>
    3. <root>
    4. <level value="ALL" />
    5. <appender-ref ref="LogFileAppender" />
    6. <!--<appender-ref ref="DBAppender"/>-->
    7. </root>
    8. <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
    9. <file value="XYZ.log" />
    10. <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    11. <appendToFile value="true" />
    12. <rollingStyle value="Size" />
    13. <maxSizeRollBackups value="20" />
    14. <maximumFileSize value="500MB" />
    15. <staticLogFileName value="true" />
    16. <layout type="log4net.Layout.PatternLayout">
    17. <conversionPattern value="%d [%t] %-5p %c%m%n" />
    18. </layout>
    19. </appender>
    20. </log4net>


    In der Routine des Startevents der Anwendung (App.xml.cs) steht folgendes zum Test:

    C#-Quellcode

    1. logger.Info("Application launched");
    2. logger.Info($"on {Environment.MachineName}");
    3. logger.Info($"as {Environment.UserName}");
    4. logger.Debug("Logger Debug Test");
    5. logger.Warn("Logger Debug Test");
    6. logger.Error("Logger Debug Test");
    7. logger.Fatal("Logger Debug Test");


    Alle Meldungen werden ausgegeben. Später z.B. beim Initialisieren der DB-Verbindung wird

    C#-Quellcode

    1. internal DatabaseContext([CallerMemberName] string callername = "")
    2. {
    3. this.callerName = callername;
    4. logger.Debug($"New Database Context for {callerName}");
    5. }


    wird logger.Debug nicht ausgeführt, wobei allerdings ein

    C#-Quellcode

    1. logger.Info(logger.IsDebugEnabled);


    true gibt.

    Jetzt bin ich ratlos.Hat jemand einen Tipp, wo ich noch nachschaun kann oder was ich wo ausprobieren könnte? Wie gesagt, ging alles schonmal. Ob das Ganze damit korrelliert, dass ich grad einen eigenen Appender geschrieben habe für das Loggen in meine DB, weiß ich nicht. Der DB Appender tut was er soll, aber eben auch nur für INFO. Aktuell ist er komplett wieder ausgeblendet und das Problem besteht weiterhin.

    Gruß

    MQ