尘叶心繁

Serilog 日志简用

电脑版发表于:2018/12/18 15:50


Serilog 是一个用于.NET应用程序的日志记录开源库,配置简单,接口干净,并可运行在最新的.NET平台上,与其他日志库

不同, Serilog 是以功能强大的结构化事件数据为基础构建的, 支持将日志输出到控制台、文件、数据库和其它更多的方式,

支持参数化日志模板,非常灵活。

                               




下面我带大家来实践一下 Serilog 框架的简单配置,首先,使用NuGet控制台安装 Serilog 核心库,其次安装控制台输出扩展库,

如果你想将日志输出到其它存储介质,可安装其它扩展库,Serilog支持的扩展库是很多的。



Install Package Serilog
Install Package Serilog.Sinks.Console

                                                               

引入命名空间:

using Serilog;

    

初始化LoggerConfiguration对象:

var Therelog = new LoggerConfiguration()
       .WriteTo.Console()
       .CreateLogger();

                                                                

通常写日志我们只需要一个对象就可以了

Therelog.Information("初次见面,多多关照,赶快尝试一下吧!");

                            

还可以把对象设置为全局:

//这样如何地方都可以记录日志了
Log.Logger = Therelog;
Log.Information("Now the global settings are set up ");


不仅如此,还可以记录到某个文件哟!但需要扩展包so...

Install Package Serilog.Sinks.File


在控制台中配置日志记录器,与 ASP.NET Core 中的配置是一样的:


using System;
using Serilog;
namespace SerilogExample{
                class Program
                          {      
                         static void Main(){
      
                             //链式方法作用:1,初始化 2,接受最低级别 3,从控制台输出 4,日志保存位置
                     //5,创建日志记录器
                     Log.Logger = new LoggerConfiguration()
                           .MinimumLevel.Debug()
                           .WriteTo.Console()
                           .WriteTo.File("logs\\myapp.txt", rollingInterval: RollingInterval.Day)
                           .CreateLogger();
                     //提示输出
                     Log.Information("Hello, world!");
                     int a = 10, b = 0;       
                     try
                      {
                           //提醒可能要保存的地方
                           Log.Debug("Dividing {A} by {B}", a, b);
                           Console.WriteLine(a / b);
                       }            
                     catch (Exception ex)
                      {
                           //报错日志输出
                           Log.Error(ex, "Something went wrong");
                       }
                           //重置全局设置
                           Log.CloseAndFlush();
                           Console.ReadKey();
                      }
              }
}

                

其他配置:

Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Debug()
    .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
    .Enrich.FromLogContext()
    .WriteTo.Console()
    .WriteTo.File(Path.Combine("Logs", @"log.txt"), rollingInterval: RollingInterval.Day)
    .CreateLogger();

                    Impact-Site-Verification: fa1aa124-2a1a-4ce4-a855-7d566efb6468                           

本篇讲得很简略大家可以参考 官方文档 

如想深入了解Serilog可以参考这篇博客:

                                                        


                                                                                        https://www.cnblogs.com/mq0036/p/8479956.html


                                                                

                                                                              

                                                               

关于TNBLOG
TNBLOG,技术分享。技术交流:群号677373950
ICP备案 :渝ICP备18016597号-1
App store Android
精彩评论
{{item.replyName}}
{{item.content}}
{{item.time}}
{{subpj.replyName}}
@{{subpj.beReplyName}}{{subpj.content}}
{{subpj.time}}
猜你喜欢