我最近开始编写 .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>