Logger log4Net installieren & konfigurieren

log4net ist mit über 113M Downloads (auf Nuget.org) einer der ältesten Hasen unter die Logger für .NET/C#. Ich verwende es seit 2011, und war damit zufrieden bis ich den neueren Logger NLog entdeckt hatte 🙂
Um log4net in eigene Anwendungen zu verwenden muss dies installiert werden:

Danach muss die Konfiguration des Projekts mit der Konfiguration für log4net erweitert werden:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
	<configSections>
		<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
	</configSections>

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

		<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
			<file value="T:\MyTemp\Logs\MyApplication\log.txt"/>
			<appendToFile value="true"/>
			<rollingStyle value="Size"/>
			<maxSizeRollBackups value="3"/>
			<maximumFileSize value="10MB"/>
			<staticLogFileName value="true"/>
			<layout type="log4net.Layout.PatternLayout">
				<!--<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />-->
        <conversionPattern value="%date{HH:mm:ss,fff} (%-2thread) [%-5level] %type.%method - %message%newline"/>
			</layout>
		</appender>

		<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
			<mapping>
				<level value="ERROR"/>
				<foreColor value="Red, HighIntensity"/>
				<!-- backColor value="Black" / -->
			</mapping>
			<mapping>
				<level value="DEBUG"/>
				<foreColor value="Green, HighIntensity"/>
			</mapping>

			<mapping>
				<level value="WARN"/>
				<foreColor value="Yellow"/>
			</mapping>

			<mapping>
				<level value="INFO"/>
				<foreColor value="Cyan, HighIntensity"/>
			</mapping>

			<layout type="log4net.Layout.PatternLayout">
				<conversionPattern value="%date{HH:mm:ss,fff} (%-2thread) [%-5level] %type.%method - %message%newline"/>
        <!--<conversionPattern value="%date{HH:mm:ss,ffff} [%thread{2}] - %message%newline" />-->
			</layout>
		</appender>

	</log4net>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6"/></startup></configuration>

Nun kann der Logger im Code wie folgt verwendet werden:

public class Program
{
    // Create logger for this class ( = typeof(Program)).
    private static readonly ILog Logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

    public void Main(string[] args)
    {
	Logger.Info("Starting application from console...");
	// more code...
    }
}