簡體   English   中英

如何將自定義文件名添加到 serilog 文件接收器生成的日志文件

[英]How to add custom file name to serilog file sink generated logs file

我想將主機名添加到由 Serilog 文件接收器生成的日志文件中。

我在下面嘗試過,但是對於下面的代碼,我的文件名顯示為log-{fileName}-20210910.txt

  vservices.AddLogging(logging => logging.AddSerilog(
            new LoggerConfiguration()
                .WriteTo.RollingFile(Path.Combine(Environment.CurrentDirectory, $"log-{fileName}.txt"),
                    outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {fileName}, {Message:lj}{NewLine}{Exception}")
                .CreateLogger()));

如何在定義serilog配置時訪問fileName變量?

你錯過了 $ 符號

var fileName = Environment.GetEnvironmentVariable("HOSTNAME") ?? "add-on";
    services.AddLogging(logging => logging.AddSerilog(new LoggerConfiguration()
        .WriteTo.RollingFile(Path.Combine(Environment.CurrentDirectory, $"log-{fileName}.txt"))
        .CreateLogger()));

另一個選擇是:

var fileName = Environment.GetEnvironmentVariable("HOSTNAME") ?? "add-on";
    services.AddLogging(logging => logging.AddSerilog(new LoggerConfiguration()
        .WriteTo.RollingFile(Path.Combine(Environment.CurrentDirectory, "log-" + fileName + ".txt"))
        .CreateLogger()));

對於我的 AspNet Core 6 WebApp,我添加了 steeltoe Placeholder 擴展庫

https://docs.steeltoe.io/api/v2/configuration/placeholder-provider.html

將解析器添加到配置中

        public Startup(IConfiguration configuration)
        {
            _configuration = configuration.AddPlaceholderResolver();
        }

然后更改了我的應用設置

{

  "Serilog": {
    "Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
    "MinimumLevel": "Debug",
    "WriteTo": [
      { "Name": "Console" },
      {
        "Name": "File",
        "Args": {
          "formatter": "Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact",
          "path": "/tmp/logs/webapi/${HOSTNAME}_.log", //Linux version
          //"path": "/tmp/logs/webapi/${COMPUTERNAME}_.log", //Windows version
          "rollingInterval": "Day",
          "rollOnFileSizeLimit": true,
          "fileSizeLimitBytes": 1073741824,
          "retainedFileCountLimit": 31
        }
      },
      {
        "Name": "Seq",
        "Args": { "serverUrl": "http://dc-seq-service:5341" }
      }
    ]
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM