异常发生后,Serilog没有记录到文件中。

问题描述 投票:0回答:1

我在我的.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);
            });
c# .net-core serilog .net-core-3.1
1个回答
0
投票

这是我的一个愚蠢的错误。这个问题是

"fileSizeLimitBytes": 5000,

这是5 kb。异常文本大得多,导致它超过了限制。而

"rollOnFileSizeLimit": true

因为我忘了添加Serilog.Sink.File包。我加了之后,改了限制,就都好了。谢谢大家的回复。

© www.soinside.com 2019 - 2024. All rights reserved.