c# - 发生异常后 Serilog 不记录到文件
问题描述
我在我的 .Net core 3.1 CONSOLE 项目中使用 serilog。它通常工作得很好,但如果有任何异常,它会记录异常,然后停止记录该应用程序的所有后续运行。我需要删除日志文件,它会重新开始工作。
不知道我做错了什么或遗漏了什么。请帮忙。
这是serilog配置。
"Serilog": {
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "C:\\Logs\\MyLogs.log",
"rollingInterval": "Day",
"fileSizeLimitBytes": 5000,
"rollOnFileSizeLimit": true
}
}
] }
这是我在通用主机中使用它的方式
return Host.CreateDefaultBuilder()
.ConfigureServices(( hostContext,services ) =>
{
...
})
.ConfigureAppConfiguration(config =>
{
config.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("AppConfigs.json");
})
.UseSerilog(( context,builder ) =>
{
builder
.ReadFrom.Configuration(context.Configuration);
});
解决方案
这对我来说是一个愚蠢的错误。问题是
"fileSizeLimitBytes": 5000,
这是 5 kb。异常文本要大得多,这导致它超出了限制。和
"rollOnFileSizeLimit": true
没有工作,因为我忘记添加 Serilog.Sink.File 包。一旦我添加了它并更改了限制,一切都很好。感谢您的回复。
推荐阅读
- specflow - 我可以让 BeforeScenario 和 AfterScenario 挂钩中的场景失败吗?
- swift - 我的函数在里面的数据被处理返回之前返回
- python-3.x - KeyError:使用 API 将数据插入数据库
- reactjs - 更改 jwt 令牌的 Apollo 客户端选项
- maven - Automation of release and dependency management
- logstash - Logstash - 如何用逗号分割数组?
- python - 我无法在 Python (PyCharm) 中输入字母“&”它用空格 {BUG} 替换它
- javascript - 如何将对话框中的用户输入数据保存到隐藏字段中:Jquery 和 HTML
- javascript - 使用 foreach 更新数组的特定列键的每个值
- css - 如何更改字体真棒图标的颜色