C# NLog将自定义参数写入存储过程

C# NLog将自定义参数写入存储过程,c#,sql-server,nlog,C#,Sql Server,Nlog,我正在尝试使用NLog(版本4)将一些数据保存到SQL Server表中。我有一个参数不包括任何正常NLog参数的程序 我的nlog.config如下所示: <target xsi:type="Database" name="database" dbProvider="System.Data.SqlClient" connectionStringName="nlogConnection" commandText="EXEC dbo.usp_L

我正在尝试使用NLog(版本4)将一些数据保存到SQL Server表中。我有一个参数不包括任何正常NLog参数的程序

我的
nlog.config
如下所示:

<target xsi:type="Database"
      name="database"
      dbProvider="System.Data.SqlClient"
      connectionStringName="nlogConnection"
      commandText="EXEC dbo.usp_LogParserMessage @Message, @Parser, @Org, @LabOrg, @ChartNum, @AccessionId, @Status, @TransId">

  <parameter name="@Message" layout="${Message}"/>
  <parameter name="@Parser" layout="${event-properties:item=parser}"/>
  <parameter name="@Org" layout="${event-properties:item=org}"/>
  <parameter name="@LabOrg" layout="${event-properties:item=laborg}"/>
  <parameter name="@ChartNum" layout="${event-properties:item=chartnum}"/>
  <parameter name="@AccessionId" layout="${event-properties:item=accessionid}"/>
  <parameter name="@Status" layout="${event-properties:item=status}"/>
  <parameter name="@TransId" layout="${event-properties:item=transid}"/>      
</target>
它不会抛出错误,但也不会写入数据库

我非常感谢你的建议或其他方法

谢谢
Rut

检查故障排除指南和内部日志:
public LogHelper(string name)
{
    _logger = LogManager.GetLogger("database");
}

public void WriteMessage(string parser, string message, string org, string laborg, string chartNum, string accessionId, string status, string transid)
{
        ///
        /// create log event from the passed message
        /// 
        LogEventInfo logEvent = new LogEventInfo(LogLevel.Trace, "", message);

        //
        // set event-specific context parameter
        // this context parameter can be retrieved using ${event-context:EventID}
        //
        logEvent.Properties["parser"] = parser;
        logEvent.Properties["org"] = org;
        logEvent.Properties["laborg"] = laborg;
        logEvent.Properties["chartnum"] = chartNum;
        logEvent.Properties["accessionid"] = accessionId;
        logEvent.Properties["status"] = status;
        logEvent.Properties["transid"] = transid;

        // 
        // Call the Log() method. It is important to pass typeof(MyLogger) as the
        // first parameter. If you don't, ${callsite} and other callstack-related 
        // layout renderers will not work properly.
        //
        try
        {
            _logger.Log(logEvent);
        }
        catch (Exception er)
        {
            string error = er.ToString();
        }
}