Lagern Sie die log4net‑Einstellungen in eine separate Datei log4net.config aus, getrennt von web.config. Laden Sie die Konfiguration automatisch über ein Assembly‑Attribut.
1 log4net.config erstellen
Legen Sie die Datei im Web‑Stammverzeichnis ab
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<!--Protokolle in eine TXT‑Datei schreiben-->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--Protokoll‑Wurzelordner: Web‑Stammverzeichnis/logs-->
<param name="File" value="logs\\" />
<!--An Datei anhängen statt überschreiben-->
<param name="AppendToFile" value="true" />
<!--Maximal 10 Sicherungsdateien behalten-->
<param name="MaxSizeRollBackups" value="10" />
<!--Dateiname wird anhand Datum erzeugt-->
<param name="StaticLogFileName" value="false" />
<!--Ordnerstruktur logs/yyyy/MM/yyyy‑MM‑dd.log -->
<param name="DatePattern" value="yyyy\\MM\\yyyy-MM-dd".log"" />
<!--Protokolldateien nach Datum rotieren-->
<param name="RollingStyle" value="Date" />
<!--Ausgabeformat der Protokollzeilen-->
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<!--Root‑Logger mit dem Appender verbinden-->
<root>
<level value="ALL" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>
</configuration>Code-Sprache: HTML, XML (xml)
2 Initialisierung in AssemblyInfo.cs
Öffnen Sie im Projekt die Datei Properties/AssemblyInfo.cs und fügen Sie am Dateiende folgenden Code ein:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]Code-Sprache: JSON / JSON mit Kommentaren (json)
ConfigFile="log4net.config": Pfad zur separaten Konfigurationsdatei (Web‑Stammverzeichnis)Watch=true: Hot‑Reload aktivieren. Änderungen an log4net.config wirken sich ohne Website‑Neustart sofort aus
3 Aufrufcode auf der Webseite
using log4net;
public partial class Default : System.Web.UI.Page
{
// Logger‑Instanz erstellen
public ILog log = LogManager.GetLogger("Logger für Default.aspx‑Seite");
protected void Page_Load(object sender, EventArgs e)
{
log.Info("Normale Protokollmeldung");
log.Error("Fehlerprotokoll");
log.Debug("Debug‑Information");
}
}
Separate Konfigurationsdatei
Previous: Konsolen‑Protokollausgabe