NLog不写

时间:2012-04-23 03:44:12

标签: nlog

我已将NLog添加到我的项目中,并且在开发环境中,它运行正常。

我创建了一个安装文件来部署我的应用程序。 NLog.config文件未在安装项目中显示为依赖项。因此,我将其添加为文件,并在部署时与exe文件和App.config存在于同一目录中。

它不进行任何记录。我不知道为什么。这是配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<?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">
  <variable name="day" value="${date:format=dd}" />
  <variable name="month" value="${date:format=MM}" />
  <variable name="year" value="${date:format=yyyy}" />  
  <variable name="verbose" value="${longdate} | ${level} | ${message} | ${exception:format=tostring,message,method:maxInnerExceptionLevel=5:innerFormat=shortType,message,method}}" />

  <targets>
    <target name="logfile" xsi:type="File" fileName="${basedir}/Logs/${year}${month}${day}.log" layout="${verbose}" />
  </targets>

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

任何帮助都会很棒。干杯!

4 个答案:

答案 0 :(得分:7)

NLog.config是否将“复制到输出目录”属性设置为“始终复制”? https://stackoverflow.com/a/8881521/438760

答案 1 :(得分:4)

将您的NLog配置放在yourapp.exe.config文件中。像这样:

<configuration>
   <configSections>
      <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>
   </configSections>
   <nlog>
      <variable name="day" value="${date:format=dd}" />
      ...
      <targets>
         <target name="logfile" xsi:type="File" .../>
      </targets>
      <rules>
         <logger name="*" minlevel="Error" writeTo="logfile" />
     </rules>
   </nlog>
</configuration>

答案 2 :(得分:0)

我猜双xml版本语句(第1行和第2行)是一个复制/粘贴问题....

可能是一个愚蠢的问题,但你将minLevel设置为Error。您是否遇到了可能被记录的错误,或者您是否尝试将其降低到信息或调试?

答案 3 :(得分:0)

对我来说,我的NLog停止记录的原因与上述建议不同。

在更新软件包期间,必须自动将一个nlog部分添加到我的Web.config底部。它可能是ApplicationInsights。显然这需要优先考虑,这导致它停止检查我的Nlog.config文件。

一旦我从web.config中删除了该部分,它就会再次从我的nlog.config文件中神奇地读取。我小心翼翼地从web.config中获取扩展,目标和规则,并确保它们整齐地放在我的nlog.config文件中。