NLog-事件属性:项目始终为空

时间:2019-03-18 16:17:52

标签: c# logging nlog nlog-configuration

我将NLog v4.5.11与Asp.net Mvc一起使用,并尝试将日志保存到数据库表中,这是我的NLog配置:

<target name="database" 
            type="Database"
            connectionStringName="Test">
      <commandText>
        INSERT INTO ExceptionLog
        (Message, StackTrace, InnerException, ExtraInfo,  Date ) VALUES
        (@Message, @StackTrace, @InnerException, @ExtraInfo, @Date);
      </commandText>
      <parameter name="@Message" layout="${exception:format=message}" />
      <parameter name="@StackTrace" layout="${exception:format=stacktrace}" />
      <parameter name="@InnerException" layout="${exception:format=type,message,method:maxInnerExceptionLevel=5:innerFormat=shortType,message,method}" />
      <parameter name="@ExtraInfo" layout="${event-properties:item=extraInfo}" />
      <parameter name="@Date" layout="${date}" />
      <dbProvider>System.Data.SqlClient</dbProvider>
    </target>
    <logger name="Test.Namespace.DatabaseLogger" minlevel="Debug" writeTo="database" final="true" />

这就是我在DatabaseLogger中调用它的方式:

public void Error(string message, Exception exception)
{
    Logger.Error(exception, "{extraInfo}", "This is some test extra info");
}

但是,这只是将一个空字符串插入ExtraInfo列(因为未找到属性)。所有其他列均设置正确。难道我做错了什么?有任何解决方法的想法吗?

0 个答案:

没有答案