Serilog在Linux上运行时不创建日志文件

时间:2018-01-14 16:10:32

标签: linux asp.net-core serilog

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有类似的问题吗?它可以是与特权相关的东西吗?

1 个答案:

答案 0 :(得分:2)

仅使用此配置解决了相同的问题:

save:

请特别注意+。这将指向您的Linux部署文件夹。我想也可以从配置文件中读取文件夹。

正如Nicholas所指出的,我还必须手动创建文件夹(谢谢!不仅如此),而且文件也没有。