Serilog 未将日志写入本地应用程序数据文件夹

use*_*018 6 c# serilog asp.net-core

我正在尝试使用以下配置将日志写入“LocalApplicationData” Serilog,但它不起作用。如果我尝试像这样编写一些硬代码路径,"path": "C:/Temp/Logs/log.txt"那么这是有效的。如何写入本地应用程序数据文件夹?

"WriteTo": [
  {
    "Name": "File",
    "Args": {
      "path": "${specialfolder:folder=LocalApplicationData}/Logs/log.txt",
      "fileSizeLimitBytes": "5242880",
      "rollingInterval": "Day",
      "retainedFileCountLimit": "15",
Run Code Online (Sandbox Code Playgroud)

小智 9

NLog 中使用这种格式。等效方法是使用 %LOCALAPPDATA% 代替:

"WriteTo": [
  {
    "Name": "File",
    "Args": {
      "path": "%LOCALAPPDATA%/Logs/log.txt",
      "fileSizeLimitBytes": "5242880",
      "rollingInterval": "Day",
      "retainedFileCountLimit": "15",
Run Code Online (Sandbox Code Playgroud)

请注意,这仅适用于appSettings.json. 要在 C# 中执行等效操作,您可以使用Environment.GetEnvironmentVariable("LocalAppData")