NLog似乎没有登录ClickOnce环境,但在dev中工作

Kal*_*exx 5 c# deployment clickonce nlog

我正通过NLog在我的应用程序中执行日志记录.我正在尝试收集一些日志来诊断我在一台机器上遇到的奇怪问题.在我的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">

  <targets>
    <target name="logfile" xsi:type="File" fileName="${specialfolder:dir=PollingLogs:file=log.txt:folder=MyDocuments}" />
  </targets>

  <rules>
    <logger name="*" minlevel="Debug" writeTo="logfile" />
  </rules>
</nlog>
Run Code Online (Sandbox Code Playgroud)

当我在我的开发机器上运行时,我得到一个log.txt在我的文档文件夹中创建的文件,所有日志记录都正确发生.但是,当我使用ClickOnce部署应用程序时,没有创建log.txt文件(我至少可以找到).没有错误发生,我的应用程序正常运行,但没有发生任何事情.

我很难理解如何调试这个问题.有没有人有他们可以分享的任何见解,以帮助我让NLog在clickonce环境中正常工作?

作为参考,我的项目中的NLog引用设置为复制本地.

Yah*_*hia 2

要调试此问题,请使用Sysinternal ProcessMon(免费)。它可以向您显示文件访问尝试/由进程组成的其他内容......

对于这种日志,我建议使用ApplicationDataorCommonApplicationDataLocalApplicationDatafromEnvironment.SpecialFolder而不是MyDocuments......

  • ProcMon 会很好,您可以检查以确保应用程序正在读取您希望它首先读取的 nlog 配置文件。也许 nlog 配置文件没有与 clickonce 应用程序一起部署? (2认同)