Nlog IsDebugEnabled 且所有其他均为 false

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

我正在尝试为我的解决方案设置 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";
c# logging app-config nlog
1个回答
0
投票

有同样的问题,在我的例子中,NLog.config 文件没有复制到输出目录,因此在调试过程中找不到配置文件。

我需要将 NLog.config 的文件属性更改为以下内容:

  • 构建操作:内容(设置为“无”)
  • 复制到输出目录:始终复制(设置为“不复制”)

之后,构建成功并在调试时识别到配置后,NLog.config文件也被复制到输出目录中。

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