我正在尝试为我的解决方案设置 Nlog。我有一个包含多个项目的解决方案,可以为 Revit 制作插件。
我遵循了所有说明,设置了 Nlog.config 文件,设置了目标和记录器。 但每当我在 Logger 上放置断点时,所有 IsEnabled 消息都会设置为 false。
我的Nlog.Config是这样的:
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
autoReload="true"
throwExceptions="false"
internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
<variable name="myvar" value="myvalue"/>
<targets>
<target xsi:type="File" name="LoggerForBaseReference" fileName="C:\temp\${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${message}" />
</targets>
<rules>
<logger name="AppLogRule" minlevel="Debug" writeTo="LoggerForBaseReference" />
</rules>
</nlog>
然后在我的主类中我制作记录器:
private static Logger log = LogManager.GetLogger("AppLogRule");
并记录我需要的信息,例如这样:
log.Info("OnStartup Initialized");
我之前尝试过 Log4Net 并遇到了完全相同的问题,我对此感到非常困惑。 为什么不记录,我没有看到什么?
编辑: 当我将其添加到 Main 时,它确实会写入一个 .txt 文件,但我仍然无法写入自己的日志文件
NLog.Common.InternalLogger.LogLevel = LogLevel.Debug;
NLog.Common.InternalLogger.LogToConsole = true;
NLog.Common.InternalLogger.LogFile = "C:\\Temp\\NLog.Internal.txt";
有同样的问题,在我的例子中,NLog.config 文件没有复制到输出目录,因此在调试过程中找不到配置文件。
我需要将 NLog.config 的文件属性更改为以下内容:
之后,构建成功并在调试时识别到配置后,NLog.config文件也被复制到输出目录中。