首页 > 解决方案 > Nlog - 我可以使用哪些参数来通过 Web.Nlog XML 进行数据库日志记录

问题描述

基本上我想要做的是在我的数据库写入中包含记录器名称:

<rules><logger name="**LogEntry**" minlevel="Trace" writeTo="apiLog" final="true" /></rules>

这是我用来调用我的 SPROC 以写入数据库的代码:

<!-- database target -->
        <target name="apiLog" 
                xsi:type="Database"
                connectionStringName="NLog"
                commandText="exec dbo.InsertApiLog
                                @level,
                                @name,
                                @callSite,
                                @type,
                                @message,
                                @stackTrace,
                                @innerException,
                                @additionalInfo">
                <parameter name="@level" layout="${level}" />
                <parameter name="@name" layout="${DisplayName}" />
                <parameter name="@callSite" layout="${callsite}" />
                <parameter name="@type" layout="${exception:format=type}" />
                <parameter name="@message" layout="${exception:format=message}" />
                <parameter name="@stackTrace" layout="${exception:format=stackTrace}" />
                <parameter name="@innerException" 
                            layout="${exception:format=:innerFormat=ShortType,Message,Method:MaxInnerExceptionLevel=1:InnerExceptionSeparator=}" />
                <parameter name="@additionalInfo" layout="${message}" />
        </target>

如何调整 @name 参数以从我的规则成员中提取记录器名称属性?

此外,是否有一个很好的来源列出了我可用于错误存储的所有参数布局?我指的是我的数据存储参考的这一部分:

<parameter name="@type" **layout="${exception:format=type}**" />

提前谢谢了!

标签: xmlparametersnlogtarget

解决方案


对于您可以使用的记录器名称${logger}

所有布局渲染器都列在这里:https ://nlog-project.org/config/?tab=layout-renderers 。您可以单击那里的布局渲染器以获取它们的选项。


推荐阅读