首页 > 解决方案 > serilog 未将日志写入本地应用程序数据文件夹

问题描述

我正在尝试使用和使用以下配置将日志写入“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",

标签: c#asp.net-coreserilog

解决方案


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

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

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


推荐阅读