Frage

Ich versuche, log4net in einer ASP.NET-Anwendung mit Visual Studio zu verwenden, 2005. Ich habe eine Instanz des Loggers erklärt wie folgt:

Private Shared ReadOnly log As ILog = LogManager.GetLogger("")

Ich versuche es auf folgende Weise zu verwenden:

If log.IsDebugEnabled Then
   log.Debug("Integration Services Constructed")
End If

Hier ist meine Konfiguration:

<log4net>

    <root>
        <level value="DEBUG" />
        <appender-ref ref="RollingFileAppender" />
    </root>

    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
        <file value="..\\logs\\logfile.log"/>
        <appendToFile value="true"/>
        <rollingStyle value="Size"/>
        <maxSizeRollBackups value="10"/>
        <maximumFileSize value="1MB"/>
        <staticLogFileName value="true"/>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="DEBUG" />
            <param name="LevelMax" value="FATAL" />
        </filter>
    </appender>

</log4net>

Leider log.IsDebugEnabled ist immer falsch.
Wie kann ich log4net konfigurieren, so dass ich nur Debug-Log-Meldungen können?

War es hilfreich?

Lösung

Vor LogManager.GetLogger Aufruf ( "")

Sie müssen rufen log4net.Config.XmlConfigurator.Configure (); In einer ASP.NET-Anwendung sollten Sie diesen Anruf in Application_Start setzen

Andere Tipps

Ja, tun Sie es wie Anson sagte. Auch, wenn Sie konfigurieren in einer Klassenbibliothek rufen Sie können das tun, indem Sie ein Attribut zu Ihrer Klasse hinzufügen:

[assembly: XmlConfigurator(Watch = true)]

und wenn Sie log4net.config Datei verwenden, verwenden Sie es so, dass statt:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

Wenn Sie eine separate Konfigurationsdatei für log4net verwenden, dies zu tun: nach folgenden alle anderen Setup-Anweisungen, stellen Sie sicher, dass u rechts auf die Datei klicken Sie in der Visual Studio-Lösung Explorer, wählen Sie Eigenschaften, erweitern Sie den Eintrag „Erweitert“ Gruppe, setzen Sie den Wert als „immer kopieren“ „To Ausgabeverzeichnis kopieren“. Das wird die Magie tun ... :) Prost !!

Wenn Sie log4net setzen eher in Code auf als in einer Konfigurationsdatei, können Sie log4net.Config.BasicConfigurator.Configure vor GetLogger nennen.

VB.NET -

<Assembly: log4net.Config.XmlConfigurator(Watch:=True)> 

Verwenden Sie diese in einem beliebigen Verfahren, bevor Sie sich verwenden:

log4net.Config.XmlConfigurator.Configure ();

In App.Config sollten die Einstellungen sein:

<root>
      <level value="ALL" />
      <appender-ref ref="AppenderName" />
    </root>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top