为什么我的Nlog数据库目标会多次将条目写入db?

时间:2015-10-09 12:20:15

标签: nlog

我们使用NLog进行基于文件的正常配置。

在共享程序集中,无论一些使用者如何配置其日志记录,我们都需要跟踪数据库中的特定条目。因此,在应用程序启动时,除了现有配置之外,我们还通过代码配置数据库目标,如下所示:

var logger = LogManager.GetLogger("dummy"); // make sure NLog loads config files first

var dbTarget = new DatabaseTarget() {
   ConnectionString = connStr,
   CommandText = cmdInsertText,
}

dbTarget.Parameters.Add(new DatabaseParameterInfo() { Name = "@logged", Layout = "${date}" });
// some other params 

LogManager.Configuration.AddTarget("_db", dbTarget);
LogManager.Configuration.LoggingRules.Add(new LoggingRule("Our.SpecificValues.*", LogLevel.Trace, dbTarget);
LogManager.ReconfigExistingLoggers();

我们确保此初始化代码只运行一次。

我们的问题:我们记录的每个条目在数据库中出现多次(有时只有两次,但我看到一个条目被写入数据库6次)。 NLog内部日志显示该语句多次执行,但我无法在日志中找到原因。其他配置(文件)目标只写入一次。

问题。我怎么能弄清楚,为什么这个条目被多次写入数据库,或者我只需要将它写入数据库一次?

0 个答案:

没有答案