我们正在使用Serilog和Sentry,.Net core 2.1我们想将日志发送到我们的 Sentry 服务器。它在本地一切正常,即使我Docker run "my-docker-path"从本地运行,它也会写入日志。但是一旦我们将它部署到带有 Linux 的 Docker 上,它就会停止工作。防火墙是打开的,我们可以从 Docker 容器访问 Sentry。serilog.sinks.console 工作正常,之前在同一环境中与 NLog 一起工作。有任何想法吗?
更新:我用 SentrySDK(没有 Serilog)试过它,它也工作得很好。
我安装的 Nuget 包
Sentry.ProtocolSentry.SerilogSerilog.AspNetCoreSerilog.Sinks.ConsoleSentry.Serilog
程序.cs
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>()
.UseEnvironment(Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Development")
.UseUrls(Environment.GetEnvironmentVariable("ASPNETCORE_URLS") ?? "http://*:5000/")
.UseSerilog(
(hostingContext, loggerConfiguration) =>
loggerConfiguration
.Enrich.FromLogContext()
.MinimumLevel.Information()
.WriteTo.Console()
.WriteTo.Sentry(s => {
s.MinimumBreadcrumbLevel = LogEventLevel.Debug;
s.MinimumEventLevel = LogEventLevel.Error;
s.Dsn = "MyDsnAddress";
}))
.Build();
host.Run();
}
}