Skip to main content

NLog Bridge

Step 1: Installing the Packages

Install the required packages via NuGet:

dotnet add package PrimusSaaS.Logging --version 1.2.6
dotnet add package NLog.Web.AspNetCore

Step 2: Configuring Program.cs

Configure NLog and Primus Logging:

using PrimusSaaS.Logging.Extensions;
using NLog.Web;

var builder = WebApplication.CreateBuilder(args);

builder.Logging.ClearProviders();
builder.Host.UseNLog();
builder.Logging.AddPrimus(builder.Configuration.GetSection("PrimusLogging"));

var app = builder.Build();

app.UsePrimusLogging();
app.MapControllers();
app.Run();

Step 3: Configuring App Settings

Configure the NLog target in your appsettings.json:

{
"PrimusLogging": {
"ApplicationId": "MyService",
"Environment": "Production",
"MinLevel": 1,
"Targets": [
{
"Type": "nlog"
}
]
}
}

Step 4: Creating nlog.config

Create nlog.config in your project root:

<?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">

<targets>
<target name="console" xsi:type="Console"
layout="${longdate}|${level:uppercase=true}|${message}" />
</targets>

<rules>
<logger name="*" minlevel="Info" writeTo="console" />
</rules>
</nlog>

Step 5: Configuring Endpoint

Create an endpoint to test logging:

[HttpGet("ping")]
public IActionResult Ping()
{
_logger.LogInformation("Ping received");
return Ok(new { message = "pong" });
}

Step 6: Testing the Endpoint

Run your application and test the endpoint:

curl -X GET "https://localhost:5001/ping"

Logs flow through Primus (with PII masking) NLog your configured targets.