using Microsoft.Extensions.Logging.Abstractions;
using Microsoft.Extensions.Logging.Console;
namespace TuringMachine.Server;
///
/// Custom log formatter that outputs a minimal timestamp + level + message format.
///
public sealed class MinimalConsoleFormatter : ConsoleFormatter
{
public MinimalConsoleFormatter() : base("minimal") { }
public override void Write(
in LogEntry logEntry,
IExternalScopeProvider? scopeProvider,
TextWriter textWriter)
{
string? message = logEntry.Formatter?.Invoke(logEntry.State, logEntry.Exception);
if (message == null) return;
string timestamp = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffzzz");
string logLevel = logEntry.LogLevel.ToString().ToLower();
textWriter.WriteLine($"{timestamp} {logLevel}: {message}");
}
}