为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
江户川乱折腾 2022-11-22 16:23:29

我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”中。


查看完整描述

2 回答

?
白衣染霜花

TA贡献1526条经验 获得超9个赞

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


"WriteTo": [

  {

    "Name": "File",

    "Args": {

      "path": "Logs/log.txt"

    }

  }

您也可以检查此答案以获取其他选项


查看完整回答
反对 回复 2022-11-22
?
慕容森

TA贡献1541条经验 获得超17个赞

您可以添加一个可以写入本地路径文件的“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"

    }

  }

...


查看完整回答
反对 回复 2022-11-22
  • 2 回答
  • 0 关注
  • 7 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信