Log4net ist die .net-Version von Apache log4j. Es handelt sich um eine Reihe von XML-Konfigurationsprotokoll-Engines. Aus Gründen der Vereinfachung der Integration habe ich beschlossen, es zu studieren. Vielen Dank an Hao Wei für die Empfehlung.
Das log4net-System ist in 7 Protokollebenen unterteilt. Bei der Einstellung „WARN“ werden DEBUG und INFO nicht aufgezeichnet. Wie folgt:
1. ALLE
2. DEBUG
3. INFO
4. WARN
5. FEHLER
6. FATAL
7. AUS
Erstellen der Beispielanwendung
Schritt 1: Laden Sie log4net herunter
und gehen Sie zu logging.apache.org/log4net, um die neueste Version zu erhalten. In dem Beispiel, das ich incubating-log4net-1.2.9-beta.zip verwendet habe, freue ich mich auf die offizielle Version.
Schritt 2: Erstellen Sie eine ASP.NET-Webanwendung.
Ich werde nicht näher auf die Erstellung eingehen, wie in log4net-1.2.0-beta8binnet gezeigt. Suchen Sie die entsprechende DLL und fügen Sie sie der Referenz hinzu. Einige Versionen verfügen nicht über eine kompilierte DLL. Kompilieren Sie sie also selbst und verwenden Sie die .NET V1.0-Version, um sie in 1.1 oder 2.0 zu konvertieren. Ich denke, das ist kein Arbeitsfehler, sondern Absicht. Vielen Leuten, die es gewohnt sind, Java zu spielen, geht es so.
Konfigurieren der Beispielanwendung
Schritt 3: Assembly-Informationen hinzufügen.
Öffnen Sie die Datei AssemblyInfo.cs und fügen Sie Folgendes hinzu:
[assembly: log4net.Config.DOMConfigurator()]
Dieser Satz bedeutet, dass das log4net-System automatisch nach der Konfigurationsdatei Web.config sucht, um die Konfigurationsinformationen abzurufen und zu laden. Wenn Sie möchten, dass log4net die Konfigurationsdatei jederzeit auf Neuladen überwacht, ist dies etwas umständlicher. Sie müssen Folgendes schreiben:
[assembly:log4net.Config.DOMConfigurator(ConfigFile="filename",ConfigFileExtension="log4net",Watch=true)]
Schritt 4: Um Konfigurationsinformationen hinzuzufügen
, müssen Sie die Datei Web.config bearbeiten. Ich bin jedes Mal wirklich überrascht Ich sehe es. Suchen Sie das Konfigurations-Tag und schreiben Sie configSections direkt darunter (ohne Rücksicht auf andere zu nehmen, was wäre, wenn jemand so dominant wäre wie er? Dann schreiben Sie einfach seine Protokollkonfigurationsdatei! Ich denke, APACHE ist so denke ich). Schauen Sie sich ein Beispiel an:
<?xml version="1.0" binding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler, log4net-net-1.0"
/>
</configSections >
<!-- Dieser Abschnitt enthält die log4net-Konfigurationseinstellungen -->
<log4net>
<!-- Definieren Sie einige Ausgabe-Appender -->
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type=" log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%X{auth}> - %m%n" />
< /layout>
</appender>
<!-- RollingFileAppender kümmert sich um das Rollover von Dateien nach Größe oder Datum -->
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value= "C:\log\RollingLogHelloWorld.log" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="10" />
<param name="MaximumFileSize" value ="1000" />
<param name="RollingStyle" value="Size" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name= "ConversionPattern" value="%d [%t] %-5p %-45c [%x] - %m%n" />
</layout>
</appender>
<!-- FileAppender hängt an ein Protokoll an und das ist es auch manuell verwaltet oder Größe -->
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="LogHelloWorld.log" />
<!-- Beispiel für die Verwendung von Umgebungsvariablen in Parametern -->
<!-- <param name="File" value="${TMP}\ApplicationKit.log" /> -->
<param name="AppendToFile" value="true" />
<layout type= "log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
</appender>
< !-- Richten Sie die Stammkategorie ein, fügen Sie die Appender hinzu und legen Sie die Standardebene fest -->
<root>
<level value="INFO" />
<appender-ref ref="ConsoleAppender" />
</root>
<!-- ApplicationKit-Kategorie – die Präsentations-Benutzeroberfläche –>
<logger name="WebForm1">
<level value="INFO" />
<appender-ref ref="FileAppender" />
</logger>
</log4net>
</configuration>
Beachten Sie, dass das NAME-Attribut des Logger-Knotens auf WebForm1 gesetzt ist, was sich auf den Klassennamen bezieht. Fügen Sie einen solchen Knoten zu jeder Klasse hinzu, die LOG hinzufügen muss. Ich denke an den OSWORKFLOW-Workflow: Flexibilität, Komfort und Praktikabilität können oft nicht gleichzeitig erreicht werden. Der Pegel ist hier INFO, das heißt, alles unterhalb von INFO wird nicht aufgezeichnet.
Ausführen der Beispielanwendung
Schritt 5: Um eine Log-Klasse hinzuzufügen,
fügen Sie zunächst eine Referenz
mit log4net.Config hinzu. // Wenn Sie die Konfigurationsdatei sorgfältig studieren, ist diese Deklarationsmethode leicht zu verstehen: private static readonly ILog log = LogManager . GetLogger("WebForm1");
Schritt 6: Verwendung des Log-Objekts
. Nun sind alle Konfigurationsarbeiten abgeschlossen. Der nächste Schritt besteht darin, es zu testen und mit der Anwendungsschicht zu verbinden. Fügen Sie einfach eine Schaltfläche im Antwortereignis-Ereignishandler „Button1_Click“ hinzu.
log.Info("Hallo Welt, ich bin ein Holzfäller");
Schritt 7: Führen Sie die Anwendung aus
. Jetzt kann sie ausgeführt werden. Sie sollte wie folgt aussehen:
Jedes Mal, wenn Sie auf die Schaltfläche klicken, wird2006-02-13 10:12:30,671 [1228] INFO WebForm1 [] - Hello
in der Datumsdatei angezeigt .
Welt, ich bin ein Holzfäller, das ist so ein Rekord.
Zusammenfassung:
Es ist einfach und leicht zu verwenden. Schauen wir uns nach einer Weile das SQL-Protokoll an, haha.
Weitere Informationen finden Sie unter http://logging.apache.org/log4net/