在C#Web应用程序中使用NLog时,我使用存储过程而不是SQL INSERT语句存在一些问题。连接字符串“Logger”在Web.config中正确配置,并且在用SQL语句替换commandText时正常工作。我希望向正确的方向提示。在这个例子中,存储过程在“日志”模式下,它被称为“LogError”。在数据库目标上的NLog中使用存储过程
<targets>
<target xsi:type="Database"
name="dberrorlog"
connectionStringName="Logger"
keepConnection="true"
commandText="[Logs].[LogError]" >
<parameter name="@ProgName" layout="MyAppName"/>
<parameter name="@CompName" layout="${machinename}"/>
<parameter name="@LogLevel" layout="${level}"/>
<parameter name="@UserName" layout="${identity}"/>
<parameter name="@Error" layout="${exception:format=Message}"/>
<parameter name="@SourceObj" layout="${exception:format=Method}"/>
<parameter name="@StackTrace" layout="${exception:format=StackTrace}"/>
</target>
</targets>
<rules>
<logger name="*" minlevel="Error" writeTo="dberrorlog" />
</rules>
谢谢,这个伎俩。我没有想到我可以致电exec。它在内部调用sp_executesql – Diego 2011-03-08 20:49:01
@adrift到NLog论坛帖子的链接现在是多余的。 – chridam 2014-03-21 15:51:22