我遇到问题,让它正常工作。我用一个直接的INSERT语句和一个存储过程尝试了它也有同样糟糕的结果。 在下面的示例中,版本号最终位于数据库的ErrorMsg字段中。日志级别最终在UserName中。知道为什么会这样吗? commandtext语句是正确的。
<target xsi:type="Database"
name="dberrorlog"
connectionStringName="Logger"
keepConnection="true"
useTransactions="true" >
<commandText>
INSERT INTO [Logs].[LogError]
([ProgName], [CreatedDate], [CompName], [LogLevel], [UserName], [ErrorMsg], [Version], [SourceMethod], [StackTrace])
VALUES
(@ProgName, @CreatedDate, @CompName, @LogLevel, @UserName, @ErrorMsg, @Version, @SourceMethod, @StackTrace)
</commandText>
<parameter name="@ProgName" layout="MyProgram"/>
<parameter name="@CreatedDate" layout="${date:format=MM\-dd\-yyyy HH\:mm\:ss}"/>
<parameter name="@CompName" layout="${machinename}"/>
<parameter name="@LogLevel" layout="${level}"/>
<parameter name="@UserName" layout="${aspnet-user-identity}"/>
<parameter name="@ErrorMsg" layout="${exception:format=ToString}"/>
<parameter name="@Version" layout="1.0.0.0"/>
<parameter name="@SourceMethod" layout="${callsite}"/>
<parameter name="@StackTrace" layout="${stacktrace:format=Raw}"/>
</target>
非常感谢任何帮助。