NLog文件没有写入

时间:2015-06-02 21:26:08

标签: c# .net nlog

我一直在尝试构建一个使用NLog记录文件的应用程序。代码非常基本,但似乎不起作用。有人有主意吗?我已将正确的事情设置为"始终复制"同样,就像这个问题一样。 NLog doen't work on IIS

以下代码。

MAIN(包括使用陈述来表明我实际上正在使用它们)

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Configuration;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NLog;

class Program
{

    static void Main(string[] args)
    {
        var logger = LogManager.GetCurrentClassLogger();
        logger.Debug("xxxx");
    }

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="file" xsi:type="File"
    layout="${longdate} ${logger} ${message}"
    fileName="${basedir}/log/logfile.txt" />
</targets>

<rules>
    <logger name="*" minlevel="Debug" writeTo="file" />
</rules>
</nlog>

的App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration> 
  <startup> 
      <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
<runtime>
  <assemblyBinding>
    <dependentAssembly>
      <assemblyIdentity name="NLog" publicKeyToken="5120e14c03d0593c"   culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-3.2.1.0" newVersion="3.2.1.0" />
  </dependentAssembly>
</assemblyBinding>
</runtime>

</configuration>

3 个答案:

答案 0 :(得分:1)

您是否从GetCurrentClassLogger调用中获得了有效的记录器?

您是否尝试启用内部调试,如下所示: https://github.com/NLog/NLog/wiki/Internal-Logging

这应指向正确的方向,指出未创建日志文件的原因

答案 1 :(得分:1)

检查您的流程是否具有${basedir}位置的写入权限。此外,如果您的应用程序是从特殊文件夹运行,请确保该进程正在升级。

答案 2 :(得分:0)

如果要从Visual Studio调试,请尝试以提升的帐户(以管理员身份运行)运行VS,然后开始调试。这样NLog将具有足够的权限来创建日志文件。

还要对nlog配置文件中的每个目标部分使用createDirs = true,以在目标部分提供的日志文件路径中自动创建丢失的文件夹。