Serilog 不从控制台应用程序写入文本文件

Serilog not writing to text file from console app

我有一个 Logging.Core class 库,其中包含以下简单的 class。我的目标是在解决方案中的所有其他项目之间共享一个配置的记录器:

public static class Logging
{
    public static void Configure()
    {
        ILogger logger = new LoggerConfiguration()
            .WriteTo.File(path: "log.txt")
            .CreateLogger();
        Log.Logger = logger;
    }
}

然后在我的控制台应用程序 Program class 中,我尝试写入日志条目:

static void Main(string[] args)
{
    Logging.Core.Logging.Configure();

    Log.Debug("Application startup has begun");
    var dbPath = "dalbuilder.db";
    if (!File.Exists(dbPath))
    {
        DalBuilderDb.CreateDbTables();
        Log.Information("Created new Sqlite database file: {filePath}", dbPath);
    }
    DalSourceModel.LoadModelTables();

    Log.CloseAndFlush();
}

当我检查我的输出文件夹时,我看到 log.txt 已经创建,但是当它应该至少有一个条目时是空的,“应用程序启动已经开始”。控制台应用程序完全按预期运行,进程以代码 0 退出。两个项目都是 .NET 5.0,日志记录库具有以下 Nuget 包:

Serilog (2.10.0)
Serilog.Sinks.File (4.1.0)

想知道这是否是最低级别的问题。尝试:-

ILogger logger = new LoggerConfiguration()
  .MinimumLevel.Verbose()
  .WriteTo.File(path: "log.txt")
  .CreateLogger();