NLOG。将日志写入不同的表

时间:2016-09-01 09:56:36

标签: c# asp.net-mvc nlog

我有一个带有区域的ASP MVC项目,我必须将异常记录到数据库中。但我有一个问题。我必须将每个区域的日志异常写入数据库中自己的表。我有一个想法是为DataTargets与表名相关的所有区域配置CommandText,但它看起来很难看。更奇妙的方法是通过某个工厂启动应用程序的所有区域并构建目标。

有人对此问题有任何想法或最佳做法吗?

1 个答案:

答案 0 :(得分:3)

数据库目标的CommandText属性是布局,因此您可以这样做:

<target xsi:type="Database"
      name="db"
      commandText="insert into ${event-properties:tablename} ... ">

并使用流畅的样式(NLog.Fluent命名空间):

logger.Info().Message("this is a message").Property("tablename", "table1").Write();

您还可以使用更多全局上下文,例如GDC,MDC等。请参阅NLog Wiki