24 lines
764 B
C#
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;
|
|
}
|
|
}
|