C# NLog将自定义参数写入存储过程
我正在尝试使用NLog(版本4)将一些数据保存到SQL Server表中。我有一个参数不包括任何正常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.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();
}
}