Files
Operation-Blue-Laminate-v2/BlueLaminate/BlueLaminate.Cli/Logging/CompactConsoleLogExporter.cs

24 lines
764 B
C#

using OpenTelemetry;
using OpenTelemetry.Logs;
namespace BlueLaminate.Cli.Logging;
/// <summary>
/// Minimal console sink for the OpenTelemetry log pipeline: one line per record
/// as "{utc timestamp} {message}". Requires IncludeFormattedMessage so the
/// message arrives with its template arguments already substituted.
/// </summary>
public sealed class CompactConsoleLogExporter : BaseExporter<LogRecord>
{
public override ExportResult Export(in Batch<LogRecord> batch)
{
foreach (var record in batch)
{
var message = record.FormattedMessage ?? record.Body ?? string.Empty;
Console.WriteLine($"{record.Timestamp:yyyy-MM-dd HH:mm:ss.fff'Z'} {message}");
}
return ExportResult.Success;
}
}