首页 > 解决方案 > Serilog 不解析文件名模板

问题描述

我正在使用带有此配置的 serilog:

{
    "Serilog": {
        "Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
        "MinimumLevel": "Debug",
        "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],
        "WriteTo": [
            { "Name": "Console" },
            {
                "Name": "File",
                "Args": {
                    "path": "./logs/performance-{Date}.log",
                    "rollingInterval": "Day",
                    "fileSizeLimitBytes": 1000,
                    "rollOnFileSizeLimit": true,
                    "retainedFileCountLimit": null,
                    "shared": true
                }
            }
        ]
    }
}

输出文件应该看起来像20210613-performance.log但是输出文件看起来像{Date}-performance20210613.log.

我做错了什么?

标签: jsonloggingserilogserilog-sinks-file

解决方案


{Date}占位符不是Serilog.Sinks.File您正在使用的接收器的功能。您可能对具有此功能的(已弃用)接收Serilog.Sinks.RollingFile器感到困惑。

使用Serilog.Sinks.File,此时,您无法定义日期将出现的位置。它始终附加到您选择的文件名的末尾(如果您也按文件大小滚动,则在序列号之前)。

已经尝试实现此功能,但在撰写本文时还没有。


推荐阅读