我正在使用 Nlog 同时将日志写入多个目标: 文件+控制台。 为此,我使用一行,例如:
logger.write("some text");
因此,将在文件和控制台中添加新行。
现在,我想添加一个目标:MongoDB,但有条件写入意味着一条新记录应该仅使用“true”标志添加到 MongoDb 中,例如:
logger.write("some text", IsWriteToMongo);
我除了这样做:
我该怎么做?
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