c# - Serilog - RollingFile Sink 不根据日期和大小滚动文件

标签 c# serilog rollingfilesink

我正在使用 Serilog - RollingFile Sink,但它将所有数据存储在一个文件中一天。 在我的应用程序中,一天写入 1 GB 日志。所以我想根据日期和大小滚动日志文件。

如何配置 RollingFile Sink 以根据日期和大小滚动文件?

最佳答案

现在 Serilog.Sinks.RollingFile 包已弃用,取而代之的是 Serilog.Sinks.File(参见 github 项目 readme 介绍)。 Serilog.Sinks.File 包已升级以支持文件滚动。 您可以使用以下 Serilog 配置来启用按时间和大小滚动:

"Serilog": {
    "Using": ["Serilog.Sinks.File"],
    "MinimumLevel": "Debug",
    "WriteTo": [
        {
            "Name": "File",
            "Args": {
                "path": "logs/log.txt",
                "rollingInterval": "Day",
                "rollOnFileSizeLimit": true,
                "fileSizeLimitBytes": "512",
                "retainedFileCountLimit": 3,
                "formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog"
            }
        }
    ]
  }

然后你会得到这样的东西:

enter image description here

关于c# - Serilog - RollingFile Sink 不根据日期和大小滚动文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39821560/

相关文章:

c# - 当我运行刺激胃口的应用程序时,R.NET 崩溃了

c# - 使用 appsettings.json 配置 Serilog 以将某些日志过滤到不同的文件

c# - appsettings-configuration 中的 Serilog PushProperty 不起作用

c# - dotnetcore 控制台上的 Microsoft.Extensions.Logging 和 Serilog。在 RollingFile 接收器中包含范围信息

c# - Serilog 文件接收器 - System.MissingMethodException : Method not found: Serilog. LoggerConfiguration

c# - 如何将 int 转换为小端字节数组?

c# - Entity Framework ,根据包含从相关表中获取元素

c# - 实体类型上的导航还没有被添加到模型中,或者被忽略,或者 entityType 被忽略

c# - Serilog 在 2 KB 后创建一个新文件