Util应用框架基础(六) - 日志记录(二) - 写入日志文件

发布时间 2023-11-12 10:11:59作者: 何镇汐

本文是Util应用框架日志记录的第二篇,介绍写入日志文件的配置方法.

概述

将日志写入文本文件,不方便查看和管理,但在开发阶段可以作为临时查看日志的手段.

日志配置

  • 引用Nuget包

    Nuget包名: Util.Logging.Serilog

  • AddSerilog

    使用 AddSerilog 扩展方法启用 Serilog 日志操作.

    • 默认配置不带参数.

      var builder = WebApplication.CreateBuilder( args );
      builder.AsBuild().AddSerilog();
      
    • 如果要清除默认设置的日志提供程序,传入 true.

      Asp.Net Core 默认日志提供程序会把消息输出到控制台,你可以清除它们.

      builder.AsBuild().AddSerilog( true );
      
    • 设置应用程序名称.

      对于微服务应用,记录产生日志的应用名称,能方便排查问题.

      builder.AsBuild().AddSerilog( "权限服务" );
      
    • 你也可以使用委托设置参数.

      • 清除默认设置的日志提供程序
      builder.AsBuild().AddSerilog( t => t.IsClearProviders = true );
      
  • 添加 appsettings 配置节

    appsettings.json 配置文件添加 Serilog 配置节.

    {
      "Logging": {
        "LogLevel": {
          "Default": "Trace"
        }
      },
      "Serilog": {
        "WriteTo": [
          {
            "Name": "File",
            "Args": {
              "path": "c:\\log\\log.txt",
              "outputTemplate": "{LogLevel}: {TraceId}  >>  [{SourceContext}] [{Timestamp:yyyy-MM-dd HH:mm:ss.fff}] {Duration}{NewLine}{Message}{NewLine}{Exception}{NewLine}"
            }
          }
        ]
      }
    }
    

    WriteTo 指定日志接收器为 File.

    path 指定了日志文件的路径,这里输出到 c:\log\log.txt.

    outputTemplate 指定输出消息的格式:

    • {LogLevel} 显示日志级别.
    • {TraceId} 显示跟踪号.
    • {SourceContext} 显示日志类别.
    • {Timestamp:yyyy-MM-dd HH:mm:ss.fff} 显示时间并指定时间格式.
    • {Duration} 显示请求的执行时间.
    • {Message} 显示日志消息正文.
    • {Exception} 显示异常消息.

    还有很多其它配置项,可以参考 Serilog 文档.

查看日志文件

配置完成后,可以启动你的项目,查看日志文件 c:\log\log.txt.

可以看到由 Asp.Net Core 写入的系统日志.