本篇内容介绍了“.net日志框架Serilog怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
首先安装Nuget包:
Install-Package SerilogInstall-Package Serilog.Sinks.Console
其中包Serilog是Log核心库,Serilog.Sinks.Console是Log的控制台输出库,这个也是日志框架的一贯策略,一个核心库加多个输出库组合使用,这样可以保持良好的扩展性。
简单的示例:
using (var log = new LoggerConfiguration() .WriteTo.Console() .CreateLogger()){ log.Information("Hello, Serilog!"); log.Warning("Goodbye, Serilog.");}
输出结果如下:
LoggerConfiguration
这里用了一个LoggerConfiguration对象,它主要用于创建和设置Log对象,类似于Nlog里面的LogManager类。这里主要用它两个方法:
WriteTo:WriteTo属性用来设置日志的输出,Serilog将其称为Sink(水槽),还是比较形象的。
CreateLogger:用于创建一个ILogger类型的Logger对象.
ILogger
ILogger对象用于记录日志,和其他日志框架差不多。Serilog日志级别分为如下5级
Verbose,
Debug,
Information,
Warning,
Error,
Fatal,
大多数的日志也是这样5级,只是有的名称叫的不同(NLog第1级叫Trace,其它的一致),每一级别对应一个写Log的函数:
log.Verbose("verbose");log.Information("info");log.Debug("debug");log.Warning("warning");log.Error("err");log.Fatal("fatal");
另外,ILogger对象还有一个Dispose方法,用于关闭日志对象。
全局Logger对象
在实际的使用过程中,往往并不是每次使用都去创建一个ILogger,一种方式是通过依赖注入的方式创建一个全局的Logger。不过这种方式需要引入DI框架。在小程序中使用不算方便。
另一种方式是直接使用静态的Log类,它也携带了写入日志的方法,用起来非常方便。
Log.Warning("warning");Log.Error("err");Log.Fatal("fatal");
不过Log类之前,首先必须给它关联一个ILogger。
Log.Logger = new LoggerConfiguration() .WriteTo.Console() .CreateLogger();
接收器
Serilog的输出对象称之为Sink(水槽),github上提供了大量的第三方的可用sinks,这里简单的列举几个常用的:
Console 输出到控制台
Debug 输出到VS的Debug窗口
File 输出到文件
Rolling File
MongoDB 输出到MongoDB
LiteDB 输出到文件数据库LiteDB
SQLite 输出到文件数据库SQLite
SignalR 输出为SignalR服务
HTTP 输出到REST服务
输出格式配置
Serilog的日志输出通过LoggerConfiguration类配置,详细的配置参数可以参看官方文档:Configuration Basics。在日常使用中,感觉更多的是直接通过LoggerConfiguration在代码中配置。
“.net日志框架Serilog怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!