如何使用带有Asp.net 5(dotnet核心)的Serilog登录到SQL Server

用户名

如果我在启动类的代码(C#)中进行配置,则设法写入Serilog.Sinks.MSSqlServer接收器。但是,如果我在wwwroot中尝试使用web.config,它将无法正常工作。

<add key="serilog:minimum-level" value="Information"/>
<add key="serilog:using:MSSqlServer" value="Serilog.Sinks.MSSqlServer" />
<add key="serilog:write-to:MSSqlServer.connectionString" value="Server=MVDV.."/>
<add key="serilog:write-to:MSSqlServer.tableName" value="Logs"/>

可能是Serilog不从那里读取配置吗?是否可以在任何地方放置此配置密钥以使其开箱即用?还是我应该创建一个json文件,然后读取值并在Startup类中再次使用C#代码,例如:

.WriteTo.MSSqlServer(connectionString: myReadFromJsonConfigValue) ?
霍萨姆·巴拉卡特(Hossam Barakat)

ASP.NET Core配置已被重新架构,并且不再依赖Xml配置,请查看这篇出色的文章,以获取有关新配置系统的介绍。

为了将Serilog与SQL Server Sink一起使用,请执行以下步骤:

步骤1:通过在依赖项部分的末尾添加以下行,更新project.json以引用Serilog和Serilog.Sinks.MSSqlServer软件包。

"Serilog": "1.5.14",
"Serilog.Sinks.MSSqlServer": "3.0.48"

步骤2:将Serilog SQL Server Sink设置添加到appsettings.json中,通过在appsettings.json文件的末尾和最后一个大括号之前添加以下JSON,更新appsettings.json文件以包括所有必需的Serilog SQL Server Sink配置,确保将值更新为您的相关值。

"Serilog": {
    "ConnectionString": "Server=(local);Database=serilogdemo;trusted_connection=true",
    "TableName": "Logs"
  }

步骤3:更新Startup类以配置Serilog.ILogger ASP.NET Core具有新的内置依赖注入功能,可通过类中ConfigureServices方法注册服务及其实现来使用,Startup因此请添加以下部分,在ConfigureServices方法末尾添加依赖注入功能提供三种类型的注册瞬态作用域辛格尔顿和这个问题,我已经用辛格尔顿只是为了演示的目的。

services.AddSingleton<Serilog.ILogger>(x=>
{
    return new LoggerConfiguration().WriteTo.MSSqlServer(Configuration["Serilog:ConnectionString"], Configuration["Serilog:TableName"],autoCreateSqlTable:true).CreateLogger();
});

如您所见,可以读取appsettings.json中嵌套的JSON配置,使用Configuration带有配置值的属性可以使用:分隔键来检索。

步骤4:获得对Serilog.ILogger的引用您可以通过将构造函数中的变量简单地添加到Serilog.ILogger中,通过建筑构造函数注入功能来获取Serilog.ILogger实例。

希望能有所帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Serilog Asp.net核心dotnet 5预览7

带有SQL Server的ASP.NET

使用SQL Server 08从Excel中上传带有C#文件的Asp.net

带有ASP.NET和SQL Server的jQuery Mobile

如何使用ASP.NET WebForms和现有的SQL Server数据库实现登录功能?

如何在Asp.Net核心应用程序中使用带有Kestrel的域URL?

如何在ASP.NET MVC 5中使用带有razor语法的jquery?

如何使用C#winform与带有ADO.NET实体的SQL Server 2008建立远程连接

在ASP.NET MVC 5 Server.MapPath()中返回带有双反斜杠的路径

带有SQL Server和EFCore 2的ASP.NET Core WebApi

如何在 asp.net 核心 WebApi 项目中使用带有 swagger 的 OData 过滤器?

如何在ASP.NET应用程序中使用SQL Server中的SQL Server Profiler?

如何使用ASP.Net vNext / 5登录到“输出”窗口

如何使用 .NET Core 配置 Elmah 以登录到 SQL?

带有ASP.NET Core 2.2的Identity Server 4

带有.Net Core容器的SQL Server DbCommand超时负载

带有.NET mutliple应用程序的SQL Server CE

如何在asp.net核心中使用来自MQTTnet.Server的GetConnectedClientsAsync

使用 .Net Core 5 中的存储库模式从带有实体框架的 Sql Server 中选择不同的记录

带有Angular 7模板的ASP.NET Core连接到SQL Server Express数据库以读取表

如何在SQL Server中使用带有日期的datepart

带有MongoDB的ASP.NET 5

如何从ASP.NET中的SQL Server 2008检索所有数据

无法通过VB.net连接到SQL Server,但是我可以使用相同的凭据从SSMS登录到服务器

为什么我的记录没有在使用ASP.NET的SQL Server中删除?

Serilog:RollingFile在带有'appsettings.json'的asp.net核心中不起作用

如何在不使用实体框架的情况下使用ASP NET MVC5从SQL Server显示表?

ASP.NET SQL Server连接别名

带有MS SQL Server 2012的ASP.NET MVC 5-在报价截止日期截止后发送自动电子邮件