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
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739