如何配置`Serilog`用配置文件写入应用程序目录?

问题描述 投票:0回答:2

我在Serilog上使用.net core。我想配置应用程序目录的日志路径。

我看到有一个扩展https://github.com/serilog/serilog-settings-configuration,使Serilog能够从Configuration读取。在该示例中,路径配置为"%TEMP%\\Logs\\serilog-configuration-sample.txt"。如何将其设置为工作目录?

我已经搜索过了,并且知道它可以通过代码完成,但似乎没有人问如何通过配置文件,即appsettings.json来做到这一点。

目前的配置:

{
  "Serilog": {
    "Using": [
      "Serilog.Sinks.File"
    ],
    "MinimumLevel": {
      "Default": "Debug",
      "Override": {
        "Microsoft": "Warning",
        "System": "Warning"
      }
    },
    "WriteTo": [
      {
        "Name": "File",
        "Args": { "path": "Logs\\serilog-configuration-sample.txt" }
      }
    ],
    "Enrich": [ "FromLogContext", "WithMachineName" ],
    "Destructure": [
    ],
    "Properties": {
    }
  },
  "AllowedHosts": "*"
}

我希望将日志路径设置为工作目录。但目前它位于“C:\ Program Files \ IIS Express”中。

c# .net-core serilog
2个回答
1
投票

Logs/log.txt这样的配置路径会在工作目录下的logs文件夹下写入日志文件

"WriteTo": [
  {
    "Name": "File",
    "Args": {
      "path": "Logs/log.txt"
    }
  }

您也可以查看this answer的其他选项


1
投票

您可以添加可以写入本地路径文件的“RollingFile”。在这个例子中,我正在我的项目根目录中写入文件,因为它显示如下。

{
    "Name": "RollingFile",
    "Args": {
      "pathFormat": ".\\Logs\\logs.txt",
      "fileSizeLimitBytes": 1048576
    }
  },

另外,appsettings.json上的完整json最终会像这样(如果你需要一个完整的例子)

...
"Serilog": {
    "MinimumLevel": {
      "Default": "Debug",
      "Override": {
        "System": "Debug",
        "Microsoft": "Debug"
      }
    },
    "WriteTo": [
      {
        "Name": "ApplicationInsightsEvents",
        "Args": {
          "instrumentationKey": "xxxxxxxxxx"
        }
      },
      {
        "Name": "RollingFile",
        "Args": {
          "pathFormat": ".\\Logs\\logs.txt",
          "fileSizeLimitBytes": 1048576
        }
      },
      { "Name": "Console" },
      {
        "Name": "EventLog",
        "Args": {
          "source": "API NAME",
          "logName": "CustomLog",
          "restrictedToMinimumLevel": "Warning"
        }
      }
    ],
    "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],
    "Properties": {
      "Application": "API NAME"
    }
  }
...
© www.soinside.com 2019 - 2024. All rights reserved.