step 1 使用Nuget安装NLog包
NLog
NLog.Extensions.Logging
NLog.Web.AspNetCore
step 2 创建配置文件
<?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"
internalLogLevel="Off"
throwExceptions="false">
<variable name="logDirectory" value="${basedir}/logs" />
<!-- enable asp.net core layout renderers -->
<extensions>
<add assembly="NLog.Web.AspNetCore"/>
</extensions>
<!-- the targets to write to -->
<targets>
<!--此部分中的所有目标将自动异步-->
<target name="asyncFile" xsi:type="AsyncWrapper">
<!--项目日志保存文件路径说明fileName="${basedir}/保存目录,
以年月日的格式创建/${shortdate}/${记录器名称}-${单级记录}-${shortdate}.txt"-->
<target name="logFile"
xsi:type="File"
fileName="${basedir}/logs/${shortdate}/${logger}-${level}-${shortdate}.txt"
layout="${longdate} | ${message} ${onexception:${exception:format=message} ${newline} ${stacktrace} ${newline}"
archiveFileName="${basedir}/log/archives/${logger}-${level}-${shortdate}-{#####}.txt"
archiveAboveSize="102400"
archiveNumbering="Sequence"
concurrentWrites="true"
keepFileOpen="false" />
</target>
<!--使用可自定义的着色将日志消息写入控制台-->
<target name="colorConsole"
xsi:type="ColoredConsole"
layout="[${date:format=HH\:mm\:ss}]:${message} ${exception:format=message}">
<highlight-row condition="level == LogLevel.Debug" foregroundColor ="Blue" />
<highlight-row condition="level == LogLevel.Info" foregroundColor ="Gray" />
<highlight-row condition="level == LogLevel.Warn" foregroundColor ="Yellow" />
<highlight-row condition="level == LogLevel.Error" foregroundColor ="Red" />
<highlight-row condition="level == LogLevel.Fatal" foregroundColor ="Red" />
</target>
</targets>
<!--规则配置,final - 最终规则匹配后不处理任何规则-->
<rules>
<logger name="Microsoft.*" Maxlevel="Info" writeTo="" final="true" />
<logger name="*" minlevel="Trace" writeTo="asyncFile" />
<logger name="*" minlevel="Trace" writeTo="colorConsole" />
</rules>
</nlog>