Serilog .NET CORE 5 Web API - 显示在 Docker 日志中

Serilog .NET CORE 5 Web API - Show In Docker Logs

我有一个使用 .NET Core 5 创建的非常简单的 Web api,它设置为在 linux Docker 容器中托管。我想要做的就是让我的控制台输出进入 Docker 日志,就像它在过去版本的 .NET Core 中一样。

这是我在 Program.cs

中的 Main 方法
var LOG_EVENT_LEVEL = Environment.GetEnvironmentVariable("LOG_EVENT_LEVEL");
var logEventLevel = LOG_EVENT_LEVEL != null
    ? Enum.Parse<LogEventLevel>(LOG_EVENT_LEVEL)
    : LogEventLevel.Information;

Log.Logger = new LoggerConfiguration()
    .WriteTo.Console(logEventLevel)
    .CreateLogger();

Log.Information("START");

我认为输出“START”应该显示在我的 Docker 日志中,但事实并非如此。我按预期在 VS 的调试 window 中看到了它们。 .NET Core 5 有什么变化吗?

因此,事实证明 Visual Studio 在调试时劫持了容器的标准输出。如果您在计算机上手动启动容器,您将在日志中看到正常的输出。