NLog ist eine weit verbreitete Logging Bibliothek im .Net Umfeld zum Loggen von Debug-Informationen und Fehlern. Ich benutze sie sehr häufig, um Nachrichten in eine Log-Datei zu schreiben. Aber NLog kann noch mehr als in eine Datei schreiben, NLog kann in viele unterschiedliche Ziele schreiben, ins EventLog von Windows oder auch in eine Datenbank. In diesem Beispiel soll eine WPF-Anwendung in eine MS-SQL Server Datenbank schreiben.

Es werden diese Nuget Pakete benötigt:

Install-Package NLog -Version 5.1.0
Install-Package System.Data.SqlClient -Version 4.8.5
Install-Package NLog.Database -Version 5.1.0 

eine Datenbank wurde mit folgendem Statment erzeugt:

USE master
GO

--USE master; DROP DATABASE NLog;
IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'NLog')
BEGIN
  CREATE DATABASE NLog;
END;
GO

USE NLog;
IF OBJECT_ID('Logs', 'U') IS NULL
BEGIN
	CREATE TABLE Logs(
		Id bigint NOT NULL PRIMARY KEY IDENTITY(1,1),
		CreatedOn nvarchar(max),
		Level nvarchar(10),
		Message nvarchar(max),
		StackTrace nvarchar(max),
		Exception nvarchar(max),
		Logger nvarchar(255),
		Url nvarchar(255)
	);
END;
GO

SELECT * FROM Logs ORDER BY Id;

Folgende Features werden gezeigt:

  • mit NLog in eine MS-SQL Datenbank schreiben

Das Projekt auf Github gibt’s hier.