首页 > 解决方案 > Serilog - .Net Core 3.1 - 控制台应用程序 - 不记录到文件(但记录到控制台)

问题描述

我正在尝试使用 Serilog 将日志记录功能添加到 .Net Core 3.1 控制台应用程序。我已经在代码本身中设置了 Logger 配置(目前不是 appsettings.json)。我尝试了各种组合,但令我惊讶的是,每次它只记录到控制台窗口而不是文件。

我已按照几篇文章中的建议将 Logger 包含在 using 块中,但仍然没有运气。你能告诉我我在这里缺少什么吗?谢谢。

这是我的主要方法:

public static async Task Main(string[] args)
        {
            using (var logger = BuildSerilog())
            {
                try
                {
                    logger.Information("It's logging to the console but not in the file.");
                }
                catch (Exception ex)
                {
                    logger.Fatal(ex, "Application crashed");
                }
            }
        }

        private static Logger BuildSerilog()
        {
            var logger = new LoggerConfiguration()
                            .WriteTo.File("app.log")
                            .WriteTo.Console()
                            .CreateLogger();

            Log.Logger = logger;

            return logger;
        }

项目中引用的 Nuget 包:

<PackageReference Include="Serilog" Version="2.9.0" />
<PackageReference Include="Serilog.AspNetCore" Version="3.2.0" />
<PackageReference Include="Serilog.Extensions.Logging" Version="3.0.1" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Serilog.Sinks.File" Version="4.1.0" />

标签: c#.net-coreconsole-applicationserilog

解决方案


推荐阅读