Friday, June 22, 2018

Dotnet Core console app with NLOG in Visual Studio Code

In this post I am going to create simple minimalistic dotnet core console application and integrate it with nlog.



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:





0
Show Comments: OR

0 comments:

Post a Comment