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

serilog not writing logs into local app data folder

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

"WriteTo": [
  {
    "Name": "File",
    "Args": {
      "path": "${specialfolder:folder=LocalApplicationData}/Logs/log.txt",
      "fileSizeLimitBytes": "5242880",
      "rollingInterval": "Day",
      "retainedFileCountLimit": "15",

这种格式在 NLog 中使用。等效于使用 %LOCALAPPDATA% 代替:

"WriteTo": [
  {
    "Name": "File",
    "Args": {
      "path": "%LOCALAPPDATA%/Logs/log.txt",
      "fileSizeLimitBytes": "5242880",
      "rollingInterval": "Day",
      "retainedFileCountLimit": "15",

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