feat: Aspire serilog

This commit is contained in:
geffzhang 2024-06-28 14:16:49 +08:00
parent e653b19085
commit 7d8448b560
4 changed files with 38 additions and 16 deletions

View file

@ -9,7 +9,10 @@
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Serilog.Extensions.Hosting" Version="8.0.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
<PackageReference Include="Serilog.Sinks.File" Version="6.0.0" />
<PackageReference Include="Serilog.Sinks.OpenTelemetry" Version="3.0.0" />
<PackageReference Include="Microsoft.Extensions.Http.Resilience" Version="8.3.0" />
<PackageReference Include="Microsoft.Extensions.ServiceDiscovery" Version="8.0.0" />
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.8.1" />

View file

@ -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<string, object>
// {
// ["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<OpenTelemetryLoggerOptions>(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)

View file

@ -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<string[]>() ?? new[]

View file

@ -21,7 +21,6 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Serilog.Extensions.Hosting" Version="8.0.0" />
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.20.1" />
</ItemGroup>