【问题标题】:NLog. Write logs into different tables日志。将日志写入不同的表
【发布时间】:2016-09-01 09:56:35
【问题描述】:
我有一个带有区域的 ASP MVC 项目,我必须将异常记录到数据库中。但我有一个问题。我必须将每个区域的日志异常写入数据库中自己的表中。我有一个想法为与表名相关的CommandText 的所有区域配置DataTargets,但它看起来很丑陋。一个更棒的方法是通过一些工厂启动应用程序的所有区域并构建目标。
有人对此问题有任何想法或最佳做法吗?
【问题讨论】:
标签:
c#
asp.net-mvc
database
logging
nlog
【解决方案1】:
数据库目标的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