Jia*_*nYA 3 asp.net logging nlog asp.net-core
我有一个如下所示的NLog数据库目标:
<target xsi:type="Database" name="database"
connectionString="Server=.\SQLEXPRESS;Database=ApplicationOne;Trusted_Connection=True;MultipleActiveResultSets=true;User Id=User0101;Password=PW0101"
commandText="INSERT INTO [SchemaOne].[EventLogs](Id, Message, Level, Logger )VALUES(NewID(), @Message, @Level, @Logger)">
<parameter name="@Message" layout="${message}" />
<parameter name="@Level" layout="${level}" />
<parameter name="@Logger" layout="${logger}" />
</target>
Run Code Online (Sandbox Code Playgroud)
是否可以从我的appsettings中更改connectionString以使用connectionStringName?
我的appsettings称为dssettings.json,它包含此处的连接详细信息:
"DatabaseConfiguration": {
"DatabaseName": "ApplicationOne",
"ConnectionName": "DefaultConnection",
"ConnectionString": "Server=.\\SQLEXPRESS;Database=ApplicationOne;Trusted_Connection=True;MultipleActiveResultSets=true;User Id=User0101;Password=PW0101"
},
Run Code Online (Sandbox Code Playgroud)
在nuget-package NLog.Appsettings.Standard的帮助下,您通常可以执行以下操作:
<extensions>
<add assembly="NLog.Appsettings.Standard" />
</extensions>
<targets>
<target xsi:type="Database" name="database"
connectionString="${appsettings:name=DatabaseConfiguration.ConnectionString}"
commandText="INSERT INTO [SchemaOne].[EventLogs](Id, Message, Level, Logger )VALUES(NewID(), @Message, @Level, @Logger)">
<parameter name="@Message" layout="${message}" />
<parameter name="@Level" layout="${level}" />
<parameter name="@Logger" layout="${logger}" />
</target>
</targets>
Run Code Online (Sandbox Code Playgroud)
但是,因为您使用的是特殊dssettings.json格式(而不是appsettings.json),所以您可能必须实现自己的自定义NLog布局渲染器:
https://github.com/NLog/NLog/wiki/How-to-write-a-custom-layout-renderer
也许您可以使用上述nuget-package中的源代码作为加载的灵感dssettings.json。或者,也许创建添加对指定非默认配置文件名的支持的PullRequest。
更新NLog.Extension.Logging版本。1.4.0
使用NLog.Extension.Logging ver。1.4.0然后您现在可以使用${configsetting}
另请参阅:https : //github.com/NLog/NLog/wiki/ConfigSetting-Layout-Renderer
| 归档时间: |
|
| 查看次数: |
1208 次 |
| 最近记录: |