You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Serilog如何在文本文件中按升序(最新在上)记录日志?

如何让Serilog日志文件按最新消息在上的顺序记录?

问题描述

当前我的Serilog日志文件是降序记录(最早的消息在顶部,最新的在底部),我需要改成升序记录(最新消息在顶部,最旧消息在底部)。

当前Program.cs中的代码如下:

public static void Main(string[] args)
{
    string timestamp = DateTime.Now.ToString("[yyyy-MM-dd][HH.mm.ss tt]", CultureInfo.InvariantCulture);

    Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
    .Enrich.FromLogContext()
    .WriteTo.File($"C:\\Logs\\{timestamp}-log.txt",
        outputTemplate: "Time:{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] {Message:lj}{NewLine}{Exception}",
        rollingInterval: RollingInterval.Day,
        restrictedToMinimumLevel: LogEventLevel.Information
     )
    .CreateLogger();

    CreateHostBuilder(args).Build().Run();
}

解决方案

Serilog官方的File sink默认是把新日志追加到文件末尾,没法直接实现"最新消息在顶部"的需求,你可以用第三方包Serilog.Sinks.File.Alternative来搞定,具体操作:

  • 安装NuGet包
    在NuGet包管理器中安装Serilog.Sinks.File.Alternative,或者用命令行:

    Install-Package Serilog.Sinks.File.Alternative
    

    或者.NET CLI命令:

    dotnet add package Serilog.Sinks.File.Alternative
    
  • 修改Serilog配置
    把原有的WriteTo.File替换成WriteTo.ReverseFile,配置参数和原File sink基本一致,修改后的代码如下:

    public static void Main(string[] args)
    {
        string timestamp = DateTime.Now.ToString("[yyyy-MM-dd][HH.mm.ss tt]", CultureInfo.InvariantCulture);
    
        Log.Logger = new LoggerConfiguration()
        .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
        .Enrich.FromLogContext()
        .WriteTo.ReverseFile($"C:\\Logs\\{timestamp}-log.txt",
            outputTemplate: "Time:{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u3}] {Message:lj}{NewLine}{Exception}",
            rollingInterval: RollingInterval.Day,
            restrictedToMinimumLevel: LogEventLevel.Information
         )
        .CreateLogger();
    
        CreateHostBuilder(args).Build().Run();
    }
    

这个包会将新的日志条目插入到文件开头,正好实现你需要的最新消息在顶部的效果。

内容的提问来源于stack exchange,提问作者Meeth46

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 05:40:32