首页 > 其他分享 >Serilog

Serilog

时间:2024-04-22 11:23:56浏览次数:23  
标签:文件 输出 Serilog WriteTo 日志 logger

一、简介

       Serilog,Microsoft .NET 的结构化日志记录库,Checkout.com .NET 首选日志记录库。支持各种日志记录目的地(接收器)包从标准控制台和基于文件的接收器到日志服务,如Datadog。

二、包

       常用的Nuget安装包如下:

  1. Serilog :主包
  2. Serilog.AspNetCore : Core环境下使用包   
  3. Serilog.Formatting.Compact :用于日志输出到控制台
  4. Serilog.Sinks.MySQL :用于日志输出到Mysql数据库
  5. Serilog.Sinks.MSSqlServer :用于日志输出到SqlSer数据库
  6. Serilog.Sinks.RollingFile:用于日志输出到文件  
  7. Serilog.Sinks.Async :异步

三、使用

        示例环境:.NET 6 ,MySql

        3.1、Program.cs配置                

//Serilog 配置
Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Override("Microsoft", LogEventLevel.Warning) // 排除Microsoft的日志
    .Enrich.FromLogContext() // 注册日志上下文
    .WriteTo.Console(new CompactJsonFormatter()) // 输出到控制台
    .WriteTo.MySQL(connectionString: builder.Configuration.GetConnectionString("DbConnectionString"), tableName: "Logs") // 输出到数据库
    .WriteTo.Logger(configure => configure // 输出到文件
                .MinimumLevel.Debug()
                .WriteTo.File(  //单个日志文件,总日志,所有日志存到这里面
                    $"logs\\log.txt",
                    rollingInterval: RollingInterval.Day,
                    outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}")
                .WriteTo.RollingFile( //每天生成一个新的日志,按天来存日志
                    "logs\\{Date}-log.txt", //定输出到滚动日志文件中,每天会创建一个新的日志,按天来存日志
                    retainedFileCountLimit: 7,
                    outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}"
                ))
    .CreateLogger();

//向主机注册Serilog
builder.Host.UseSerilog();
View Code

       3.2、控制器使用

[ApiController]
[Route("[controller]")]
public class TestController : ControllerBase
{
    #region DI

    private readonly ILogger<TestController> _logger;

    public TestController(ILogger<TestController> logger)
    {
        _logger = logger;
    }

    #endregion

    #region Func

    [HttpGet]
    public object Get()
    {
        // 记录日志
        _logger.LogInformation($"测试测试");
        _logger.LogDebug("测试Debug信息");
        _logger.LogError("测试Error信息");
        _logger.LogWarning("测试Warning信息");
        _logger.LogCritical("测试Critical信息");
        return "";
    } 

    #endregion
}
View Code

      3.3、appsettings.json配置,如果使用数据库记录日志的话。

"ConnectionStrings": {
  "DbConnectionString": "Data Source=48.114.198.199;Database=efcore;AllowLoadLocalInfile=true;User ID=root;Password=root;allowPublicKeyRetrieval=true;pooling=true;CharSet=utf8;port=3306;sslmode=none;"
}

     3.4、数据库结果

            logs表会自动创建

   3.5、文件结果    

             logs文件夹下会有两个日志文件,一个是总日志文件,一个是按天创建记录的滚动日志文件

 

标签:文件,输出,Serilog,WriteTo,日志,logger
From: https://www.cnblogs.com/xiaobaicai12138/p/18150224

相关文章

  • 对比.Net平台下三大日志库:Serilog、log4net和NLog
    原文链接:Serilog,log4netandNLogComparison:LoggingLibrariesfor.NETApplications(bytehide.com)译者前言:最近在搭建一套自己用的后端开发的架构,涉及到日志系统的选型,一番检索下找到了这篇文章,还算比较新,翻译过来跟大家分享一下。这篇文章运用了大量的比喻,不知道各位是......
  • Serilog 日志记录库
    Serilog是一个.NET平台上的强大的日志记录库。它提供了丰富的API以及可插拔的日志格式化器和输出器,使得在.NET应用程序中实现可定制化的、可扩展的日志记录变得轻而易举。在本文中,我们将探讨Serilog的一些基础知识、API、配置和示例。基础知识日志级别Serilog支持多......
  • .Net Core微服务 - Serilog+Seq记录日志
    Serilog介绍Serilog是用于.NET应用程序的诊断日志记录库。它易于设置,具有干净的API,并且可以在所有最新的.NET平台上运行。Serilog通过NuGet分发,项目包括一个Seirlog核心项目Seirlog和很多接收器sinks(超过100个),这些接收是通过插件的方式来实现将日志写入到各种终端、文件......
  • 不通过 Host 将 Serilog 转换成 ILogger
    安装SerilogpublicstaticclassLoggerExtension{publicstaticILogger<T>CreateLogger<T>(){varlogPath="log.txt";conststringoutputTemplate="[{Timestamp:yyyy-MM-ddHH:mm:ss}{Level:u3}]{Message:......
  • .NET 6 (C#) Serilog 日志框架的使用
    ​Serilog是.NET6中常用的日志框架之一,用于记录和管理应用程序的日志信息。它具有灵活的配置选项和丰富的扩展功能,使开发人员能够轻松地集成日志记录功能到他们的应用程序中。Serilog是一个用于.NET应用程序的诊断日志库。它易于设置,具有清晰的API,并且可以在所有最新的.NET平台上......
  • .net下优秀的日志框架Serilog,你用上了吗?强烈推荐
     在.NET开发中,Serilog是一款广受欢迎的日志库,它提供了强大的日志记录功能,具有丰富的特性和高度的可扩展性。Serilog的优秀之处包括:可扩展性:Serilog可以轻松扩展以满足不同的日志记录需求,例如日志存储、格式化和过滤。它支持各种插件和自定义扩展,让你可以根据项目的具......
  • Serilog入门- 自主查询官方文档
    Serilog入门:自主查询官方文档这是主代码存储库https://github.com/serilog/serilog这是Youtube一个简单的Serilog介绍https://www.youtube.com/watch?v=QjO2Jac1uQw看主文档,感觉啥都没说.无从下手其实Serilog有很多个功能模块,称为Sink.要实现什么功能去对......
  • 使用.NET 6创建Windows Service项目并配置使用Serilog
    一.创建WindowsService项目二.添加Serilog对应的NuGet包三.编写Serilog配置文件双击打开appsettings.json,并录入以下配置:四.在Program.cs启动代码中配置Serilog 五.测试结果 ......
  • PasteSpider之appsettings.json中的Serilog的配置,分流不同日志层级的信息!
    在实际使用Serilog中,我们通常会有不一样的需求,常见的比如1.按照等级,高级哪个等级的才记录2.记录文件每个多大,超过的划分到下一个文件中3.不同等级的记录到不同的位置中4.按照不一样的格式输出以下是PasteSpider中的appsettings.json中关于Serilog的配置"Serilog":{......
  • 学习Serilog日志笔记
       本学习笔记所有的.net 版本为6.0 首先引包nuget包为:serilog 和serilog.aspnetcore1、在控制台下使用日志:  需要引入Serilog.Sinks.Console包 然后在program.cs中写入以下语句:  Log.Logger=newLogerConfiguration().MinimumLevel.Debug()  .WriteT......