Let's create a folder for our project. I am going to name it nlog_console.
$mkdir nlog_console
$cd nlog_console
Now we create dotnet core console app project and if you have Visual Studio Code installed run the second command below.
$dotnet new console
$code . &
Now lets add nlog package to a project.
$dotnet add package nlog
This will add the following code to our project file.
<ItemGroup>
<PackageReference Include="nlog" Version="4.5.6" />
</ItemGroup>
Nlog framework requires configuration file 'nlog.config' to specify logger tagerts and rules. We can copy paste the sample nlog.config file from this github page or use one below.
xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xsi:schemaLocation="NLog NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogFile="console-example-internal.log"
internalLogLevel="Info" >
<targets>
<target xsi:type="File" name="file"
fileName="console-example.log"
layout="${date}|${level:uppercase=true}|${message} ${exception}|${logger}|${all-event-properties}" />
<target xsi:type="Console" name="console"
layout="${date}|${level:uppercase=true}|${message} ${exception}|${logger}|${all-event-properties}" />
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="file,console" />
</rules>
</nlog>
'nlog.config' file need to be copied to destination directory during project build. To achieve it add the code below to a project file.
<ItemGroup>
<None Include="nlog.config" CopyToOutputDirectory="Always" />
<ItemGroup>
Now we need to add actual logging code to a program. Copy paste the Program class code below.
using System;
namespace dotnetcore_nlog
{
class Program
{
private static NLog.Logger log = NLog.LogManager.GetCurrentClassLogger();
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
log.Trace("Loggin trace.");
}
}
}
To build and run our console app run code below or add launch.json config to Visual Studio Code.
$dotnet build
$dotnet run
You should see the following output and log file created in the same directory as our console app.
2018/06/19 18:48:13.130|TRACE|Loggin trace. |nlog_console.Program|
References:
- Getting started with .NET Core 2 Console application
- Sample dotnet core console app with nlog on github