大部分內容來自網絡
nlog.config文件的屬性 [始終複製]
Program.cs 中添加代碼 (紅色部分)
. public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>().ConfigureLogging(logging =>
{
logging.ClearProviders(); //移除已經註冊的其他日誌處理程序
logging.SetMinimumLevel(LogLevel.Trace); //設置最小的日誌級別
})
.UseNLog();
使用時先初始化
private readonly ILogger<HomeController> _logger;
然後方法中代碼
_logger.LogDebug("LogDebug");
_logger.LogInformation("LogInformation");
_logger.LogTrace("LogTrace");//不顯示
_logger.LogError("LogError");
nlog.config 配置
<?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">
<!-- 要寫入的目標 -->
<targets>
<!-- 將日誌寫入文件 -->
<target xsi:type="File" name="allfile" fileName="${basedir}/logs/all/${level}${shortdate}.log"
layout="${longdate}|${event-properties:item=EventId_Id:whenEmpty=0}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}" />
<!-- 另一個文件日誌,只有自己的日誌。 使用一些ASP.NET Core渲染器 -->
<target xsi:type="File" name="ownFile-web" fileName="${basedir}/logs/my/${level}${shortdate}.log"
layout="${longdate}
|${level}
|信息:${message}
|url: ${aspnet-request-url}
" />
</targets>
<!--備用配置-->
<!--<target xsi:type="File" name="ownFile-web" fileName="${basedir}/logs/my/${level}${shortdate}.log"
layout="${longdate}
|${level}
|${logger}
|信息:${message}
|url: ${aspnet-request-url}
|調用函數: ${aspnet-mvc-action}
|${callsite}
" />
</targets>-->
<!--從記錄器名稱映射到目標的規則-->
<rules>
<!--所有日誌,包括來自Microsoft的日誌-->
<logger name="*" minlevel="Trace" writeTo="allfile" />
<!--跳過非關鍵的Microsoft日誌,因此僅記錄自己的日誌-->
<logger name="Microsoft.*" maxlevel="Info" final="true" />
<!-- BlackHole -->
<logger name="*" minlevel="Trace" writeTo="ownFile-web" />
</rules>
</nlog>