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...
    }
}

Logger NLog installieren & konfigurieren

Der Logger NLog ist mit über 250M Downloads (in Nuget.org) einer der Standard-Logger für .NET/C#.
Davor verwendete ich den log4net Logger.

Um NLog zu verwenden müssen zwei Nuget-Packages installiert werden:

  1. NLog
  2. NLog.Config

Danach muss die NLog.config Datei im Projekt konfiguriert werden.
Hier ist eine einfache Konfiguration um die Logs in einer Datei zu schreiben sowie diese auch in Console farbig auszugeben:

Die Konfiguration dazu:

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
      autoReload="true"
      throwExceptions="false"
      internalLogLevel="Off" internalLogFile="T:\MyTemp\Logs\PGH.AssemblyParser and Converter\${shortdate}.log">

  <targets>

    <target
	name="coloredConsole"
	xsi:type="ColoredConsole"
	useDefaultRowHighlightingRules="false"
	layout="${longdate} [${pad:padding=5:inner=${level:uppercase=true}}] ${logger} - ${message}" >
			
      <highlight-row condition="level == LogLevel.Debug" foregroundColor="Green"  />
      <highlight-row condition="level == LogLevel.Info"  foregroundColor="Blue"   />
      <highlight-row condition="level == LogLevel.Warn"  foregroundColor="Yellow" />
      <highlight-row condition="level == LogLevel.Error" foregroundColor="Red"    />
      <highlight-row condition="level == LogLevel.Fatal" foregroundColor="Red"    backgroundColor="White" />
    </target>

    <target
	name="logFile"
	xsi:type="File"
	layout="${longdate} [${pad:padding=5:inner=${level:uppercase=true}}] ${logger} - ${message}"
	fileName="T:\MyTemp\Logs\MyApplication\${shortdate}.log" 
	keepFileOpen="false" 
	encoding="utf-8" />
  </targets>
  
  <rules>
    <!-- add your logging rules here -->
    <logger name="*" minlevel="Trace" writeTo="coloredConsole" />
    <logger name="*" minlevel="Trace" writeTo="logFile" />

    <!--
    Write all events with minimal level of Debug (So Debug, Info, Warn, Error and Fatal, but not Trace)  to "f"
    <logger name="*" minlevel="Debug" writeTo="f" />
    -->
  </rules>
</nlog>

Nun kann der Logger wie folgt im Code verwendet werden:

class Program
{
    // Create the logger for current class ( = typeof(Program)).
    private static readonly NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger();

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

Windows 7 oder 8.x auf Windows 10 aktualisieren (2022)

Es gibt immer noch einige PCs und Notebooks mit Windows 7 oder 8.x die herumliegen oder gar noch im Betrieb sind (= Unsicher!). Man kann immer noch das Betriebsystem Windows 7, oder Windows 8.x (8.0 – 8.3) auf Windows 10 aktualisieren. Es ist nicht zu spät.

Hier ist eine bebilderte Schritt für Schritt Anleitung:

In Webbrowser auf folgende Seite von Microsoft navigieren und auf „Tool jetzt herunterladen“ klicken:
https://www.microsoft.com/de-de/software-download/windows10

Nachem die Datei „MediaCreationToolXXXX.exe“ (XXXX steht für die aktuelle Version wie z.B.: 21H2) heruntergeladen/gespeichert wurde diese durch Doppelklick starten und folgende Schritte durchgehen:

Die Lizenzbedingungen mit einem Klick auf „Akzeptieren“ akzeptieren:

Danach muss man sich entscheiden ob man ein Installations-USB-Stick oder Installations-DVD erstellen möchte. Ich persönlich bevorzuge ein USB-Stick als Installations-Medium, da es sicherer (zerkratzte/unlesbare DVD bzw. das Fehlen von DVD-Laufwerk auf manchem PC/Notebook) und die Installation viel Schneller ist. Hier beschreibe ich wie ein USB-Installer erstellt werden kann.

Nun die zweite Option „Installationsmedien (USB-Speicherstick, DVD oder ISO-Datei) für einen anderen PC erstellen)“ auswählen und auf „Weiter“ klicken:

Jetzt die Sprache, Windows Edition (Windows 10) und die Architektur wählen und auf „Weiter“ klicken.
Normalerweise ist „Deutsch„, „Windows 10“ und „64-Bit (x64)“ als Standardwerte bereits ausgewählt.
Man kann durch das Abwählen von „Empfohlene Optionen für diesen PC verwenden“ die drei oben erwähnte Einstellungen freigeben, um z.B. die 32 (x86) Architektur zu wählen. Davon rate ich ab.

Nun muss das Installations-Medium „USB-Speicherstick“ oder „ISO-Datei“ (für DVD) gewählt werden.
Ich empfehle USB-Speicherstick (wegen oben erwehnte Gründe) zu wählen, eine leeres USB-Speicherstick mit mindestens 8 GB an PC/Notebook zu stecken (am Besten USB 2.x oder USB 3.x) und auf „Weiter“ klicken:

Nun wird eine Liste von Verfügbaren Medien (Festplatten, DVD- und USB-Laufwerke) angezeigt.
Bitte wähle jetzt dein USB-Speicherstick (Vorsicht! Nicht das falsche Laufwerk wählen!) welcher Du vorher angesteckt hast und klick auf „Weiter„:

Nun werden die Dateien für den Windows-10-Installer heruntergeladen. Je nacht Internetgeschwindigkeit kann dies mehrere Minuten dauern:

Wenn die Meldung „Der USB-Speicherstick ist bereit.“ angezeigt wird, kann man nochmal sehen auf welchem Laufwerk (in Beispiel-Bild „D:\„) der Windows-10-Installer sich befindet.
Jetzt auf „Fertig stellen“ klicken:

Nun wird für kurze Zeit eine Meldung über die Bereinigung angezeigt und das Fenster schließt sich selbst.

Wir sind mit der Erstellung von Windows-10-Installations-USB fertig.