NLog不记录异常或任何其他文本

时间:2017-12-01 11:33:01

标签: asp.net-mvc nlog

这是我的Nlog.Config代码。

<nlog>
  <variable name="logFilePath" value="C:\NLog\IDG-${shortdate}.log" />
  <targets>
    <target name="logfile"
             xsi:type="File"
             fileName="${logFilePath}"
             layout="${longdate}   LEVEL=${level:upperCase=true}: ${message}"
             keepFileOpen="true" />
  </targets>
  <rules>   
    <logger name="*" minlevel="Debug" writeTo="logfile" />
    <logger name="*" minlevel="Info" writeTo="logfile" />
    <logger name="*" minlevel="Warn" writeTo="file"/>
  </rules>
</nlog>

我在班上定义了这个

private static Logger logger = LogManager.GetCurrentClassLogger();

然后我将错误记录为:

catch (Exception ex)
            {
                logger.Error(ex.Message,"test");
            }

任何人都可以建议我,如果有更好的方法,我没有看到文件记录在目标文件夹中。

1 个答案:

答案 0 :(得分:0)

您似乎无法正确引用配置部分。尝试将主配置文件更改为类似的内容并删除Nlog.Config

    <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" />
  </configSections>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
    </startup>
  <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <variable name="logFilePath" value="C:\temp\output.log" />
    <targets>
      <target name="logfile"
               xsi:type="File"
               fileName="${logFilePath}"
               layout="${longdate}   LEVEL=${level:upperCase=true}: ${message}"
               keepFileOpen="true" />
    </targets>
    <rules>
      <logger name="*" minlevel="Debug" writeTo="logfile" />
      <logger name="*" minlevel="Info" writeTo="logfile" />
      <logger name="*" minlevel="Warn" writeTo="file"/>
    </rules>
  </nlog>
</configuration>