Skip to main content

Application logging

This section provides information on how to log information in your worker applications.

Logging in worker commands​

In your worker application, the default logging infrastructure is already set up. Use the Logger property of the command to quickly log messages using the ILogger API.

using System.Net;
using Taskurai.Models;
using Taskurai.Worker;

public class TestControllerSerializable: WorkerController
{
private readonly IConfiguration _configuration;


public TestControllerSerializable(IConfiguration configuration)
{
_configuration = configuration;
}

[Command]
public async Task<string> GetIPLocation(
TaskuraiTaskContext context,
CancellationToken cancellationToken,
string ipv4)
{
Logger.LogInformation("Looking up IP location for {IpAddress}", ipv4);

if (string.IsNullOrEmpty(ipv4))
{
Logger.LogError("Invalid IP address provided: {IpAddress}", ipv4);
throw new ArgumentException("Invalid IP address");
}

// Simulate work
await Task.Delay(5000, cancellationToken);

var location = "Amsterdam, Netherlands";

Logger.LogInformation("IP lookup result for {IpAddress}: {Location}", ipv4, location);

// Simulate lookup
return location;
}
}

Logging configuration​

The Worker SDK uses the Serilog library to offer structured logging.

Logging can be configured in the appsettings.json for each worker that is deployed to Taskurai.

appsettings.json
{
"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"System": "Warning",
"Taskurai": "Information",
"Taskurai.Worker": "Information"
}
}
},
...
}