Skip to content

Custom Formatting

Implement IMessageFormatter:

using Logix.Abstractions;

public class JsonFormatter : IMessageFormatter
{
    public string Format(LogMessage msg)
    {
        return System.Text.Json.JsonSerializer.Serialize(new
        {
            timestamp = msg.Created,
            level = msg.Level.ToString(),
            file = msg.File,
            line = msg.Line,
            message = msg.Message?.ToString()
        });
    }
}

Replace the default:

Log.Container.Logger.Formatter = new JsonFormatter();

The default formatter produces: [14:32:01] [INFO] Player.cs[42]: message