如何在ASP.Net Core中使用Serilog

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

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

[ 什么是Docker? Linux容器说明 | 在InfoWorld的Docker初学者指南中深入研究炙手可热的开源框架。 | 查看我们的Docker教程: Docker入门 开始使用Docker群模式 开始使用Docker Compose 开始使用Docker卷 开始使用Docker网络 ]

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

在Visual Studio中创建一个ASP.Net Core项目

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

  1. 启动Visual Studio 2017 IDE。
  2. 单击文件>新建>项目。
  3. 选择“ ASP.Net Core Web应用程序”项目模板。
  4. 指定项目的名称和位置。
  5. 单击确定。
  6. 在“新建ASP.Net Core Web应用程序”对话框窗口中,选择.Net Core。
  7. 选择ASP.Net Core 2.1作为版本,选择“ Web API”作为项目模板。
  8. 选中“启用Docker支持”复选框,因为我们将使用Docker部署应用程序。
  9. 确保选择“无身份验证”选项。 我们将不在这里使用身份验证。
  10. 单击确定。

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

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

使用Serilog接收器将日志数据定向到日志目标

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

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

using (var logConfig = new LoggerConfiguration()
            .WriteTo.Console()
            .CreateLogger())
            {
                logConfig.Information("This is a test data.");
            };

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

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

 var logger = new LoggerConfiguration()
             .MinimumLevel.Debug()
             .WriteTo.RollingFile(@"d:\log.txt", retainedFileCountLimit: 7)
             .CreateLogger();
            logger.Information("Hello World");

在ASP.Net Core中注册和配置Serilog

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

WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .UseSerilog()
            .Build();

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

loggerFactory.AddSerilog();

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

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            loggerFactory.AddSerilog();
            app.UseMvc();
        }

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

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

From: https://www.infoworld.com/article/3314985/how-to-use-serilog-in-aspnet-core.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值