我在我的.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包。我加了之后,改了限制,就都好了。谢谢大家的回复。