2020-09-21 18:48:18 登录注册 RSS

当前位置: 公理网 >> 正义之家 >> 如何在ASP.NetCore中使用Serilog

如何在ASP.NetCore中使用Serilog
发布时间:09-16| 来源:公理网 | 点击发表评论

日志记录是检测和调查应用程序中问题的基本功能。日志记录框架使将事件数据记录到预配置的日志目标变得很容易。但是如果您的日志文件包含非结构化数据则查询数据成为噩梦。这是结构化日志起作用的地方。

通过确保要记录的数据以结构化格式编写结构化日志记录使查询事件数据变得容易。格式可以是XMLJSON或任何其他易于解析数据的结构化格式。结构化日志还有助于处理日志文件以进行日志分析。

[什么是Docker3204171/linux/what-is-docker-linux-containers-explained.html">Linux容器说明。|在InfoWorld的Docker初学者指南中深入研究炙手可热的开源框架。|查看我们的Docker教程2607941/containers/docker-tutorial-get-started-with-docker.html">Docker入门。?3259872/containers/docker-tutorial-get-started-with-docker-swarm-mode.html">开始使用Docker群模式。?3254689/devops/docker-tutorial-get-started-with-docker-compose.html">开始使用DockerCompose。?3269521/docker-tutorial-get-started-with-docker-volumes.html">开始使用Docker卷。?3276604/docker-tutorial-get-started-with-docker-networking.html">开始使用Docker网络。]


Serilog是用于结构化日志记录的第三方开源库。它使开发人员可以轻松地将结构化事件数据记录到控制台文件和各种存储系统中。本文讨论了如何在ASP.NetCore中使用Serilog。

在VisualStudio中创建一个ASP.NetCore项目

在本节中我们将创建一个ASP.NetCore应用程序并使用它来学习如何使用Serilog。请按照下面概述的步骤在VisualStudio2017中创建一个新的ASP.NetCore项目。

启动VisualStudio2017IDE。单击文件新建项目。选择“ASP.NetCoreWeb应用程序”项目模板。指定项目的名称和位置。单击确定。在“新建ASP.NetCoreWeb应用程序”对话框窗口中选择.NetCore。选择ASP.NetCore2.1作为版本选择“WebAPI”作为项目模板。选中“启用Docker支持”复选框因为我们将使用Docker部署应用程序。确保选择“无身份验证”选项。我们将不在这里使用身份验证。单击确定。

这将在VisualStudio中创建一个新的ASP.NetCore项目。接下来我们需要从NuGet中获取一些软件包。在“解决方案资源管理器”窗口中选择项目然后右键单击“管理NuGet软件包”以打开NuGet软件包管理器窗口。现在一个接一个地安装以下软件包。

Serilog。该软件包为使用完全结构化的事件提供支持。AspNetCore。该软件包用于为ASP.NetCore应用程序提供Serilog支持。设置。配置该软件包提供对Microsoft.Extensions.Configuration的支持以便您可以从appsettings.json中读取配置数据。水槽控制台。这是一个Serilog接收器它将Serilog事件发送到控制台。Sinks.RollingFile。这是一个Serilog接收器它支持将日志消息存储在具有完全结构化事件的滚动文件中。
使用Serilog接收器将日志数据定向到日志目标

Serilog利用接收器将日志发送到各种日志记录目标例如文本文件数据库甚至日志管理解决方案。换句话说接收器用于指示应将日志消息发送到的位置。





如果Serilog软件包已成功安装在系统中则以下代码段可用于将日志数据发送到控制台。


using(varlogConfignewLoggerConfiguration()
???????????.WriteTo.Console()
???????????.CreateLogger())
???????????{
???????????????logConfig.Information(Thisisatestdata.
???????????};

请注意Serilog允许您从各种日志记录级别中进行选择包括详细调试信息警告错误和致命消息。





控制台日志有助于调试。在将应用程序部署到生产环境中后可能需要将日志保存到文件中以便可以监视日志并执行日志分析。Serilog.Sink.RollingFile包提供了处理滚动文件的支持。以下代码段说明了如何以编程方式配置记录器以将数据记录到文件中。


?varloggernewLoggerConfiguration()
????????????.MinimumLevel.Debug()
????????????.WriteTo.RollingFile(d:\log.txt,retainedFileCountLimit:7)
????????????.CreateLogger();
???????????logger.Information(HelloWorld
在ASP.NetCore中注册和配置Serilog

要开始在ASP.NetCore应用程序中利用Serilog您应使用UseSerilog扩展方法在Program.cs文件中的WebHostBuilder上注册Serilog如下所示。


WebHost.CreateDefaultBuilder(args)
???????????.UseStartupStartup()
???????????.UseSerilog()
???????????.Build();

接下来在Configure方法中添加以下行以启用Serilog中间件。


loggerFactory.AddSerilog();

这是Startup.cs文件中的Configure方法的外观。





publicvoidConfigure(IApplicationBuilderapp,IHostingEnvironmentenv,ILoggerFactoryloggerFactory)
???????{
???????????loggerFactory.AddSerilog();
???????????app.UseMvc();
???????}

最后您应该在appsettings.json文件中指定必要的配置。然后您可以利用依赖性注入来注入记录器实例并以与使用任何其他中间件相同的方式在控制器方法中使用Serilog。


因为日志记录是任何应用程序必不可少的组件所以日志记录框架的简单性和灵活性很重要。Serilog提供了易于配置和易于使用的日志记录组件可使用接收器将结构化事件数据记录到各种日志目标中。

最新新闻

手机浏览

公理网 版权所有

公理网 Total 0.033003(s) query 6, 报料QQ:点击这里

给我发消息