如何使用NLog InternalLogger的方法写入NLog的内部日志文件。

5
我在我的库中使用NLog进行日志记录,并创建了自定义的NLog Target以将日志条目上传到Azure Data Explorer。然而,如果在上传日志到Azure Data Explorer时遇到异常,我希望在本地日志文件中记录错误消息。
但是,我不能使用NLog的File Target进行此错误日志记录,因为再次调用NLog的logging API会再次调用我的自定义Target,从而导致无限循环。
因此,我想使用NLog的InternalLogger(记录到NLog的内部日志文件)来记录上传错误。但是,当我使用下面的InternalLogger方法时,它不会记录到内部日志文件中。
InternalLogger.Error(e, msg);

InternalLogger类的文档在这里

我想知道是否有配置步骤我错过了,或者将日志记录到NLog的内部日志文件是不可能的?


你是否已经激活了InternalLogger?你需要为InternalLogger.LogLevel(作为最低级别)分配一个值,并且还需要为InternalLogger.LogFile分配一个文件名。详见https://github.com/NLog/NLog/wiki/Internal-Logging - Rolf Kristensen
1个回答

8

这里有一个教程 链接

简要概述:

启用内部日志,它默认是禁用的。

在配置文件中(nlog.config)

<nlog internalLogFile="c:\log.txt" internalLogLevel="Trace">

从代码中

或者从代码中:

// set internal log level
InternalLogger.LogLevel = LogLevel.Trace;

// enable internal logging to a file
InternalLogger.LogFile = "c:\\log.txt";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接