.Net Core 的 NLog 未记录调试信息

时间:2021-03-16 17:04:22

标签: asp.net-core logging c#-3.0 nlog

我最近开始编写 .Net Core 应用程序,我正在使用 NLog 进行日志记录。我想出了以下 NLog.config 文件。如果我使用 _log.LogInformation("Log an INFO"); 这将记录但如果我使用 _log.LogDebug("Log a DEBUG"); 则不会。

我的 appsettings.json 文件中没有任何日志记录设置。我通常编写控制台应用程序,并且控制台应用程序的 VisualStudio 模板没有自动添加到 appsettings 的任何日志记录。

我使用 .Net Core 3.1 和以下 NLog 包。

<PackageReference Include="NLog.Web.AspNetCore" Version="4.9.3" />

有人知道为什么使用 Debug 不会写入日志文件吗?

<?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"
      autoReload="true">

  <!-- enable asp.net core layout renderers -->
  <extensions>
    <add assembly="NLog.Web.AspNetCore"/>
  </extensions>

  <variable name="LogDirectory" value="D:\logs\ProjectName"/>

  <!-- the targets to write to -->
  <targets>
    
    <target xsi:type="File" 
      name="DefaultTarget" 
      fileName="${LogDirectory}\LogFile.log"
      layout="${longdate} | ${callsite} | ${message}"
      archiveAboveSize="3145728"  
      archiveEvery="Day"
      archiveFileName = "${LogDirectory}/Archive/{#}.log"  
      archiveNumbering = "DateAndSequence"            
      archiveDateFormat = "yyyyMMdd"  
      maxArchiveFiles = "21"            
    />

    <target name="ConsoleTarget"
      xsi:type="Console"
      layout="${longdate} ${logger:shortName=True} ${message} ${onexception:EXCEPTION OCCURRED\:${exception:format=type,message,StackTrace,method:maxInnerExceptionLevel=8:innerFormat=type,message,StackTrace,method}}"
    />
    
  </targets>  
  <rules>
    <logger name="Microsoft.*" maxlevel="Info" final="true" /> <!-- BlackHole without writeTo -->
    <logger name="*" minlevel="Debug" writeTo="DefaultTarget,ConsoleTarget" />
  </rules>
</nlog>

0 个答案:

没有答案
相关问题