Вывод журнала OpenTelemetry на консоль в формате JSONC#

Место общения программистов C#
Ответить
Anonymous
 Вывод журнала OpenTelemetry на консоль в формате JSON

Сообщение Anonymous »

Здравствуйте, мне нужно, чтобы журналы/метрики/трассировки OpenTelemetry отправлялись на консоль моего приложения, но в формате JSON. Это приложение .NET 8 ASP.NET, настроенное следующим образом: https://learn.microsoft.com/en-us/dotne ... -with-otel, приложение уже ведет журнал Microsoft с форматировщиком журнала JSON ( см. ниже, используется собственный класс JsonLogFormatter). Проблема в том, что все журналы фактически отформатированы как JSON, а OpenTelemetry — нет.

Код: Выделить всё

        var builder = WebApplication.CreateBuilder(args);
var services = builder.Services;

// OpenTelemetry stuff...
var otel = services.AddOpenTelemetry();
otel.WithMetrics(metrics => metrics
.AddAspNetCoreInstrumentation()
.AddMeter("Microsoft.AspNetCore.Hosting")
.AddMeter("Microsoft.AspNetCore.Server.Kestrel")
);
otel.WithTracing(tracing =>
{
tracing.AddAspNetCoreInstrumentation();
tracing.AddHttpClientInstrumentation();
tracing.AddConsoleExporter();
});
[...]
// JSON Microsoft logger added like so...
var loggerFactory = LoggerFactory.Create(builder =>
{
builder.ClearProviders();
builder.AddConfiguration(configuration.GetSection("Logging"))
.AddConsole();
builder.AddConsoleFormatter();
});
services.AddSingleton(loggerFactory);
services.AddLogging();
Вывод на консоль:

Код: Выделить всё

{"message":"Hosting starting","machineName":"XXX","source":"Microsoft.Extensions.Hosting.Internal.Host","level":"Debug","timestamp":"2024-03-14T19:38:23.2569003+01:00"}
Activity.TraceId:            8794488a000a8aa943fb4bd76b8becbe
Activity.SpanId:             bae785686698f263
Activity.TraceFlags:         Recorded
Activity.ActivitySourceName: System.Net.Http
Activity.DisplayName:        GET
Activity.Kind:               Client
[..]
{"message":"Now listening on: https://localhost:6001","...}
Мне бы очень хотелось использовать OpenTelemetry в формате JSON в этом примере журнала. :)

Подробнее здесь: https://stackoverflow.com/questions/781 ... son-format
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»