在 Linux 上运行 ASP.NET Core 应用程序时,我遇到了启用日志记录的问题。我使用 Serilog.Sinks.File (但也尝试使用 RollingFile ),并在appsettings中定义了以下配置:
"Serilog": {
"Using": [ "Serilog.Sinks.File" ],
"MinimumLevel": {
"Default": "Debug",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
},
"WriteTo": [
{
"Name": "File",
"Args": { "path": "core_log.log", "rollingInterval": "Day" }
}
],
"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],
"Properties": {
"Application": "CORE service"
} }
我还尝试使用 pathFormat 使用RollingFile接收器,但没有成功。我尝试过什么,应用程序不创建日志文件。
我还尝试了多种路径变体,例如:/var/test/app/core_log.log或者只是core_log.log,但我没有在任何地方看到文件。我试着用它来搜索它:
sudo find / -name '*.log' -print | grep core_log
值得一提的是,在Windows上运行相同的应用程序时,一切运行良好,我可以看到创建了日志文件。
在Linux上有人与Serilog有类似的问题吗?它可以是与特权相关的东西吗?
答案 0 :(得分:2)
仅使用此配置解决了相同的问题:
save:
请特别注意+
。这将指向您的Linux部署文件夹。我想也可以从配置文件中读取文件夹。
正如Nicholas所指出的,我还必须手动创建文件夹(谢谢!不仅如此),而且文件也没有。