
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

