我将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列(因为未找到属性)。所有其他列均设置正确。难道我做错了什么?有任何解决方法的想法吗?