加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-core – 如何使用Asil.net 5(dotnet core)使用Serilog登

发布时间:2020-12-16 06:34:02 所属栏目:asp.Net 来源:网络整理
导读:如果我在代码(C#),Startup类中配置,我设法写入Serilog.Sinks.MSSqlServer接收器. 但是,如果我在wwwroot中尝试web.config它不起作用; add key="serilog:minimum-level" value="Information"/add key="serilog:using:MSSqlServer" value="Serilog.Sinks.MSSqlS
如果我在代码(C#),Startup类中配置,我设法写入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) ?

解决方法

ASP.NET Core配置已经过重新设计,不再依赖于Xml配置,请查看 this excellent article以获取有关新配置系统的介绍.

要将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有一个新的内置依赖注入功能,可以通过Startup类中的ConfigureServices方法注册服务及其实现来使用,因此添加以下部分添加ConfigureServices方法的结尾. Dependency Injection功能提供了三种类型的注册Transient,Scoped和Singleton,对于这个问题,我使用Singleton仅用于演示目的.

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

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

第4步:参考Serilog.ILogger
只需在控制器的构造函数中将变量添加到Serilog.ILogger,即可通过构建构造函数注入功能获取Serilog.ILogger的实例

希望有所帮助

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读