【问题标题】:asp.net 4.6.1 can't create log file using NLogasp.net 4.6.1 无法使用 NLog 创建日志文件
【发布时间】:2017-12-12 22:51:42
【问题描述】:

我正在尝试使用NLog 4.4.12 记录一些应用程序信息,但我似乎无法在我的C drive 中创建日志文件。

我有一个在 .net 4.6.1 上运行的类库

我在该项目的根目录中创建了一个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="c:\ApiLogfile.txt" />
  </targets>

  <rules>
    <logger name="*" minlevel="Info" writeTo="logfile" />
  </rules>
</nlog>

当我调用logger.Info("NLog to the rescue") 时,不会在 C 驱动器中创建输出文件。我在这里遗漏了什么吗?

【问题讨论】:

  • nlog.config 是在您启动应用程序的 bin 或根文件夹中吗?
  • 也可能是权限错误。您可以尝试 c:/temp 或检查内部日志。检查github.com/NLog/NLog/wiki/Logging-troubleshooting
  • @Julian Nlog.config 在类库中,而不是在启动应用程序中。我应该把它移过来吗?我也会检查权限并让你知道。感谢您的帮助。
  • 是的,它应该在启动应用程序中,或者您应该添加一些代码(以及 1 行)来加载它。

标签: c# logging nlog


【解决方案1】:

我无法使用它来工作

<target name="logfile" xsi:type="File" fileName="c:\ApiLogfile.txt" />

这可能是权限问题,如果您以管理员身份执行应用程序,它确实可以工作。

这两个位置对我有用:

<target name="logfile" xsi:type="File" fileName="${basedir}/ApiLogfile.txt" />
<target name="logfile" xsi:type="File" fileName="C:\Users\{username}\Documents\ApiLogfile.txt" />

还要确保将 NLog.config 文件的 Copy to Output Directory 设置为 Copy always,以确保将其复制到输出目录,这是 NLog 程序集的位置预计会这样。

【讨论】:

    猜你喜欢
    • 2018-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多