首页 > 其他分享 >Util应用框架基础(六) - 日志记录(二) - 写入日志文件

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

时间:2023-11-12 10:24:41浏览次数:23  
标签:log Serilog AddSerilog 写入 Util 日志 builder

本文是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 写入的系统日志.

标签:log,Serilog,AddSerilog,写入,Util,日志,builder
From: https://www.cnblogs.com/xiadao521/p/17826798.html

相关文章

  • Util应用框架基础(六) - 日志记录(三) - 写入 Seq
    本文是Util应用框架日志记录的第三篇,介绍安装和写入Seq日志系统的配置方法.安装SeqSeq是一个日志管理系统,对结构化日志数据拥有强大的模糊搜索能力.Util应用框架目前主要使用Seq和Exceptionless管理日志.你可以从中选择一个合适的.本节介绍使用Docker简单安装Seq......
  • 不依赖于cn.hutool.extra.servlet.ServletUtil,使用Spring其他方式实现文件下载的功能
     在JDK17下,如下代码引用了cn.hutool.extra.servlet包下的ServletUtil工具类的ServletUtil.write方法,执行时报”Cannotresolvemethod'write(jakarta.servlet.http.HttpServletResponse,java.io.File)'“BUG,download方法通过cn.hutool.extra.servlet.ServletUtil的方法来实现......
  • php开发之文件读取、写入
    前言续之前的系列,这里php开发的文件操作的内容读取以及文本写入的部分文件读取代码的实现css代码本系列的php博客都是这个css,名字都是index.css/*css样式初始化*/*{font-family:'Poppins',sans-serif;margin:0;padding:0;box-sizing:border-box......
  • Util应用框架基础(六) - 日志记录(一) - 正文
    本文介绍Util应用框架如何记录日志.日志记录共分4篇,本文是正文,后续还有3篇分别介绍写入不同日志接收器的安装和配置方法.概述日志记录对于了解系统执行情况非常重要.Asp.NetCore抽象了日志基础架构,支持使用日志提供程序进行扩展,提供控制台日志等简单实现.Serilog是.N......
  • logback日志框架
    logback是springboot默认自带的日志框架。只要引入springboot依赖即可使用。具体的配置(输出格式,存储位置,级别等)可通过logback.xml(放在resource下)进行配置logback.xml`<!--Console输出设置--><appendername="CONSOLE"class="ch.qos.logback.core.ConsoleAppen......
  • go 1.6 废弃 io/ioutil 包后的替换函数
      go1.6废弃io/ioutil 包后的替换函数 io/ioutil替代 ioutil.ReadAll->io.ReadAllioutil.ReadFile->os.ReadFileioutil.ReadDir->os.ReadDir//othersioutil.NopCloser->io.NopCloserioutil.ReadDir->os.ReadDirioutil.TempDir->os.Mkdi......
  • 高效技巧:Node.js文件写入
    文件写入是 Node.js 中的一项重要任务,它允许你将数据保存到本地文件系统中,供后续使用。这个功能在许多应用中都有广泛的应用,包括数据备份、日志记录、配置文件更新等。在本文,我们将介绍如何在Node.js中执行文件写入操作,提供基本概念、常用方法、使用场景和实践案例。基本概念在......
  • 【openfeign】OpenFeign的扩展、日志、超时时间、拦截器、客户端组件、压缩
    Feign的日志配置有时候我们遇到Bug,比如接口调用失败、参数没收到等问题,或者想看看调用性能,就需要配置Feign的日志了,以此让Feign把请求信息输出来。全局配置定义一个配置类,指定日志级别:packagecom.morris.user.config;importfeign.Logger;importorg.springframework.context.a......
  • 日志系统搭建
    1.定义docker-composeversion:'3'services:elasticsearch:image:elasticsearch:7.6.2container_name:elasticsearchprivileged:trueuser:rootenvironment:#设置集群名称为elasticsearch-cluster.name=elasticsearch......
  • Java日志框架概览
     SLF4J提供统一的日志门面API,即图中紫色部分,实现中立的日志记录API桥接功能,蓝色部分,把各种日志框架API(绿色部分)桥接到SLF4JAPI。这样即便你的程序中使用各种日志API记录日志,最终都可桥接到SLF4J门面API。适配功能,红色部分,可实现SLF4JAPI和实际日志框架(灰色部分)绑定。SLF4J只是......