实例介绍
Serilog为Microsoft.Extensions.Hosting提供了强大的日志记录功能,能够帮助开发者轻松地将框架日志消息通过Serilog路由,以便将关于框架内部操作的信息与应用程序事件写入到同一Serilog接收器中。
对于ASP.NET Core应用程序,建议使用Serilog.AspNetCore,它包含了此包并且加入了其他针对ASP.NET Core的特定功能。
使用指南
首先,在你的应用中安装Serilog.Extensions.Hosting NuGet包。你需要一种方式来查看日志消息——Serilog.Sinks.Console可以将这些写入控制台;NuGet上还有许多其他接收器可用。
dotnet add package Serilog.Extensions.Hosting
dotnet add package Serilog.Sinks.Console
接下来,在应用的Program.cs文件中,首先配置Serilog。一个try/catch块将确保任何配置问题都会被适当记录:
public class Program
{
public static int Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.Console()
.CreateLogger();
try
{
Log.Information("Starting host");
BuildHost(args).Run();
return 0;
}
catch (Exception ex)
{
Log.Fatal(ex, "Host terminated unexpectedly");
return 1;
}
finally
{
Log.CloseAndFlush();
}
}
}
然后,在BuildHost()中的主机构建器中添加UseSerilog()。
最后,通过移除appsettings.json文件中剩余的“Logging”部分来进行清理(如果需要,可以用本示例中所示的Serilog配置来替换)。
就是这样!你将看到像下面这样的日志输出:
[22:10:39 INF] Getting the motors running...
[22:10:39 INF] The current time is: 12/05/2018 10:10:39 +00:00
使用Serilog.Extensions.Hosting安装并配置后,你可以直接通过Serilog或.NET注入的任何ILogger接口编写日志消息。所有的日志器将使用相同的底层实现、级别和目的地。
【实例截图】
【核心代码】
文件清单
└── serilog-extensions-hosting-2b8e22185718393e4cdcfb00a8d9fef85930762f
├── appveyor.yml
├── assets
│ ├── icon.png
│ └── Serilog.snk
├── Build.ps1
├── build.sh
├── CHANGES.md
├── global.json
├── LICENSE
├── README.md
├── samples
│ ├── SimpleServiceSample
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.json
│ │ ├── PrintTimeService.cs
│ │ ├── Program.cs
│ │ ├── Properties
│ │ │ └── launchSettings.json
│ │ └── SimpleServiceSample.csproj
│ └── WebApplicationSample
│ ├── appsettings.Development.json
│ ├── appsettings.json
│ ├── Program.cs
│ ├── Properties
│ │ └── launchSettings.json
│ ├── Startup.cs
│ └── WebApplicationSample.csproj
├── serilog-extensions-hosting.sln
├── serilog-extensions-hosting.sln.DotSettings
├── src
│ └── Serilog.Extensions.Hosting
│ ├── Extensions
│ │ └── Hosting
│ │ ├── AmbientDiagnosticContextCollector.cs
│ │ ├── CachingReloadableLogger.cs
│ │ ├── DiagnosticContextCollector.cs
│ │ ├── DiagnosticContext.cs
│ │ ├── FixedPropertyEnricher.cs
│ │ ├── InjectedLoggerSettings.cs
│ │ ├── IReloadableLogger.cs
│ │ ├── NullEnricher.cs
│ │ ├── ReloadableLogger.cs
│ │ └── SerilogLoggerFactory.cs
│ ├── IDiagnosticContext.cs
│ ├── LoggerConfigurationExtensions.cs
│ ├── LoggerSettingsConfigurationExtensions.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Serilog.Extensions.Hosting.csproj
│ ├── SerilogHostBuilderExtensions.cs
│ └── SerilogServiceCollectionExtensions.cs
└── test
└── Serilog.Extensions.Hosting.Tests
├── DiagnosticContextTests.cs
├── LoggerSettingsConfigurationExtensionsTests.cs
├── ReloadableLoggerTests.cs
├── Serilog.Extensions.Hosting.Tests.csproj
├── SerilogHostBuilderExtensionsTests.cs
├── SerilogServiceCollectionExtensionsTests.cs
└── Support
├── DisposeTrackingLogger.cs
├── ListSink.cs
└── Some.cs
15 directories, 49 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论