使用 NLog 在 MongoDB 中有条件存储日志

问题描述 投票:0回答:1

我正在使用 Nlog 同时将日志写入多个目标: 文件+控制台。 为此,我使用一行,例如:

logger.write("some text");
因此,将在文件和控制台中添加新行。

现在,我想添加一个目标:MongoDB,但有条件写入意味着一条新记录应该仅使用“true”标志添加到 MongoDb 中,例如:

logger.write("some text", IsWriteToMongo);

我除了这样做:

  • 文件中添加了新行
  • 控制台添加了新行
  • 仅当 IsWriteToMongo = 'true' 时才会将新记录添加到 MongoDb

我该怎么做?

c# logging nlog
1个回答
0
投票

NLog 非常擅长根据记录器名称重定向输出。也许考虑使用 Logger-name 来控制输出是否应该针对 MongoDb:

示例代码:

var logger = LogManager.GetLogger("Default");
var loggerMongoDb = LogManager.GetLogger("Default.MongoDb");
logger.Info("Not for MongoDb");
loggerMongoDb.Info("Write To MongoDb");

NLog 日志记录规则示例(所有带有后缀

.MongoDb
的记录器应写入
mongoDb
-目标):

<rules>
   <logger name="*.MongoDb" minLevel="Info" writeTo="logfile, console, mongoDb" finalMinLevel="Off" />
   <logger name="*" minLevel="Debug" writeTo="logfile, console" />
</rules>

另请参阅:https://github.com/NLog/NLog/wiki/Configuration-file#rules

另请参阅:https://github.com/NLog/NLog/wiki/Filtering-log-messages

© www.soinside.com 2019 - 2024. All rights reserved.