c# - 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" />
解决方案
推荐阅读
- android - Arduino 在从设备接收到的串行文本中找不到字符串中的子字符串
- c# - 无法使用 C# 在子元素内创建具有子元素的 xml 文件
- ethereum - 使用 Web3js 检索合同信息
- python - python picamera - 在存储的图像上使用 PiYUVArray
- java - 字符串空对象引用
- php - 使用explode时如何每2个单词加下划线?
- python - 如何在 Python 上制作描述 WordNet 的同义词集 (NLTK) 的图表
- c# - HTTP 错误 404.0 - 使用 64 位编码时未找到
- python - 使用 url 通过 urllib python 请求时出现编码问题
- python - Discord.py - 如何为每个服务器制作 cogs