0

我们正在使用SerilogSentry.Net core 2.1我们想将日志发送到我们的 Sentry 服务器。它在本地一切正常,即使我Docker run "my-docker-path"从本地运行,它也会写入日志。但是一旦我们将它部署到带有 Linux 的 Docker 上,它就会停止工作。防火墙是打开的,我们可以从 Docker 容器访问 Sentry。serilog.sinks.console 工作正常,之前在同一环境中与 NLog 一起工作。有任何想法吗?

更新:我用 SentrySDK(没有 Serilog)试过它,它也工作得很好。

我安装的 Nuget 包

  • Sentry.Protocol
  • Sentry.Serilog
  • Serilog.AspNetCore
  • Serilog.Sinks.Console
  • Sentry.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();
    }
}
4

0 回答 0