ASP.NET Core 添加日志NLog


1.在Nuget上搜索 NLog.Extensions.Logging 安裝最新版

 

2.添加日志配置文件,在項目指定目錄下添加配置文件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"
      internalLogLevel="Warn"
      internalLogFile="c:\temp\internal-nlog.txt">

  <!-- define various log targets -->
  <targets>
    <!-- write logs to file -->
    <target xsi:type="File" name="allfile" fileName="c:\temp\nlog-all-${shortdate}.log"
                 layout="${longdate}|${event-properties:item=EventId.Id}|${logger}|${uppercase:${level}}|${message} ${exception}" />

   
    <target xsi:type="File" name="ownFile-web" fileName="c:\temp\nlog-own-${shortdate}.log"
             layout="${longdate}|${event-properties:item=EventId.Id}|${logger}|${uppercase:${level}}|  ${message} ${exception}" />

    <target xsi:type="Null" name="blackhole" />
  </targets>

  <rules>
    <!--All logs, including from Microsoft-->
    <logger name="*" minlevel="Trace" writeTo="allfile" />

    <!--Skip Microsoft logs and so log only own logs-->
    <logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" />
    <logger name="*" minlevel="Trace" writeTo="ownFile-web" />
  </rules>
</nlog>

 

3.將nlog.config添加到project.json配置文件中(若配置文件在指定config目錄下,可以添加config/*.config)

  "publishOptions": { "include": [ "wwwroot", "Views", "appsettings.json", "web.config", "nlog.config" ] },

4.在startup.cs文件Configure中添加

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddNLog();
env.ConfigureNLog("nlog.config");
…………



5.記錄日志方法
(1) public class HomeController : Controller { private static Logger Logger = LogManager.GetCurrentClassLogger(); public IActionResult Index() { Logger.Info("Index page says hello"); return View(); }
…………


(2) public abstract class BaseController<T> : Controller
{
protected ILogger<T> Logger { get; set; }
    public BaseController(ILogger<T> logger, IOptions<ApplicationSiteConfig> appConfig)
{
this.Logger = logger;
}
…………


參考:https://github.com/NLog/NLog.Extensions.Logging


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM