1. 启动应用程序日志配置

修改program.cs,在webhostbuilder构建时配置日志

public static iwebhostbuilder createwebhostbuilder(string[] args) =>
  webhost.createdefaultbuilder(args)
  .usestartup<startup>()
  .configurelogging(logging =>
  {
    logging.clearproviders();
    logging.setminimumlevel(loglevel.information);
    logging.addconsole();
  }).usenlog();

其中,usenlog是拓展方法,需要引入nlog.web.aspnetcore

 

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”>

  <targets>

    <target name=“defaultlog” xsi:type=“file” keepfileopen=“false” encoding=“utf-8”

      filename=“${basedir}/logs/${level}/${shortdate}.log”

      maxarchivefiles=”100″

      layout=“${longdate}|${level:uppercase=true}|${logger}|${message}” />

    <!–filename值——表示在程序运行目录,分日志级别按天写入日志文件–>
    <!–maxarchivefiles值——日志文件最大数量,超出则删除最早的文件–>
    <!–layout值——日志内容格式:时间+日志级别+loggername+日志内容–>

 

  </targets>

  <rules>

    <!–支持将任意级别、任意loggername的日志写入target:defaultlog–>

    <!–其中*就表示任意,可以改为”项目命名空间.*”,则只输出对应命名空间下的日志。在info级别尤为明显–>

    <logger name=“*” minlevel=“trace” writeto=“defaultlog” />

  </rules>

</nlog>

 

3. 实例化并使用

1)在控制器的构造方法赋值ilogger(亲测可用)

  private readonly ilogger<homecontroller> _logger;

  public homecontroller(ilogger<homecontroller> logger)

  { this._logger = logger; }

  _logger.info(“一个info级别的测试样例”);
  _logger.error(“一个error级别的测试样例”);

2)直接使用nlog.logmanager(可以忽略第一步)