diff --git a/src/BotSharp.ServiceDefaults/BotSharp.ServiceDefaults.csproj b/src/BotSharp.ServiceDefaults/BotSharp.ServiceDefaults.csproj index 51ceffa1..53f9559f 100644 --- a/src/BotSharp.ServiceDefaults/BotSharp.ServiceDefaults.csproj +++ b/src/BotSharp.ServiceDefaults/BotSharp.ServiceDefaults.csproj @@ -9,7 +9,10 @@ - + + + + diff --git a/src/BotSharp.ServiceDefaults/Extensions.cs b/src/BotSharp.ServiceDefaults/Extensions.cs index c404e894..bfc0bb68 100644 --- a/src/BotSharp.ServiceDefaults/Extensions.cs +++ b/src/BotSharp.ServiceDefaults/Extensions.cs @@ -5,8 +5,10 @@ using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.ServiceDiscovery; using OpenTelemetry; +using OpenTelemetry.Logs; using OpenTelemetry.Metrics; using OpenTelemetry.Trace; +using Serilog; namespace Microsoft.Extensions.Hosting { @@ -44,7 +46,34 @@ namespace Microsoft.Extensions.Hosting public static IHostApplicationBuilder ConfigureOpenTelemetry(this IHostApplicationBuilder builder) { builder.Logging.AddOpenTelemetry(logging => - { + { // Use Serilog + Log.Logger = new LoggerConfiguration() + // 对请求路径为 / heathz和 / metrics不进行日志记录 + .Filter.ByExcluding( + e => e.Properties.TryGetValue("RequestPath", out var value) && (value.ToString().StartsWith("\"/metrics\"") || value.ToString().StartsWith("\"/healthz\"")) + ) +#if DEBUG + .MinimumLevel.Information() +#else + .MinimumLevel.Warning() +#endif + .WriteTo.Console() + .WriteTo.File("logs/log-.txt", + shared: true, + rollingInterval: RollingInterval.Day) + //.WriteTo.OpenTelemetry(options => + //{ + // options.Endpoint = builder.Configuration["OpenTelemetry:Endpoint"]; + // options.ResourceAttributes = new Dictionary + // { + // ["service.name"] = builder.Configuration["OpenTelemetry:ServiceName"], + // ["index"] = 10, + // ["flag"] = true, + // ["value"] = 3.14 + // }; + //}) + .CreateLogger(); + logging.IncludeFormattedMessage = true; logging.IncludeScopes = true; }); @@ -75,7 +104,10 @@ namespace Microsoft.Extensions.Hosting if (useOtlpExporter) { - builder.Services.AddOpenTelemetry().UseOtlpExporter(); + builder.Services.Configure(logging => logging.AddOtlpExporter()); + builder.Services.ConfigureOpenTelemetryMeterProvider(metrics => metrics.AddOtlpExporter()); + builder.Services.ConfigureOpenTelemetryTracerProvider(tracing => tracing.AddOtlpExporter()); + } // Uncomment the following lines to enable the Azure Monitor exporter (requires the Azure.Monitor.OpenTelemetry.AspNetCore package) diff --git a/src/WebStarter/Program.cs b/src/WebStarter/Program.cs index 5924ab30..ed0f8baf 100644 --- a/src/WebStarter/Program.cs +++ b/src/WebStarter/Program.cs @@ -7,18 +7,6 @@ using BotSharp.Abstraction.Messaging.JsonConverters; var builder = WebApplication.CreateBuilder(args); -// Use Serilog -Log.Logger = new LoggerConfiguration() -#if DEBUG - .MinimumLevel.Information() -#else - .MinimumLevel.Warning() -#endif - .WriteTo.Console() - .WriteTo.File("logs/log-.txt", - shared: true, - rollingInterval: RollingInterval.Day) - .CreateLogger(); builder.Host.UseSerilog(); string[] allowedOrigins = builder.Configuration.GetSection("AllowedOrigins").Get() ?? new[] diff --git a/src/WebStarter/WebStarter.csproj b/src/WebStarter/WebStarter.csproj index 8a1f2496..4764cbb1 100644 --- a/src/WebStarter/WebStarter.csproj +++ b/src/WebStarter/WebStarter.csproj @@ -21,7 +21,6 @@ -