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(可以忽略第一步)

  //使用GetLogger获取ILogger(暂无法成功输出日志到文件)

  //var logger = NLog.LogManager.GetLogger(LoggerName);

  //使用GetCurrentClassLogger获取ILogger

  var logger = NLog.LogManager.GetCurrentClassLogger();

  logger.Info("一个Info级别的测试样例");
  logger.Error("一个Error级别的测试样例");

  其中,LoggerName可以为当前调用的控制器名称,也可以是当前调用的方法名称,甚至任意文本。它主要作用是:显示在文件中,方便查看报错位置

本文学习自:

https://www.cnblogs.com/lonelyxmas/p/10669153.html

越努力越幸运,努力需要自制,希望自己能够有更强的自制力!感恩自信自律!

netcore的NLog使用小记的更多相关文章

  1. .netcore 堆栈调用方法小记

    背景 上午临近午饭时,公司同事反馈验证码被攻击灌水.我们匆忙查询验证码明细,对已频繁出现的IP插入黑名单,但IP仍然隔断时间频繁变动,不得已之下只能先封禁对应公司id的验证码发送功能.年初时候,专门对 ...

  2. .NetCore使用NLog写入数据库总结

    考虑到项目后期添加日志的需求,抽个闲暇时间学习一下使用NLog插件将日志信息写入到数据库中,完整项目见下面: 遇到的问题: 使用NLog写到SQLServer里面的中文显示问号? 解决方法:调整数据库 ...

  3. netcore的Session使用小记

    之前说过,core需要什么功能就添加并使用什么中间件 照例,在Startup.cs的ConfigureServices方法中添加services.AddSession();再在Configure方法中 ...

  4. netcore 发布 到 windows server IIS 可能会报错

    当发布netcore 到windows server iis可能会报这种错:An error occurred while starting the application 不要慌,这个时候可能是你用 ...

  5. 懒人必备:.NetCore快速搭建ELK分布式日志中心

    该篇内容由个人博客点击跳转同步更新!转载请注明出处! 前言 ELK是什么 它是一个分布式日志解决方案,是Logstash.Elastaicsearch.Kibana的缩写,可用于从不同的服务中收集日志 ...

  6. .NetCore快速搭建ELK分布式日志中心

    懒人必备:.NetCore快速搭建ELK分布式日志中心   该篇内容由个人博客点击跳转同步更新!转载请注明出处! 前言 ELK是什么 它是一个分布式日志解决方案,是Logstash.Elastaics ...

  7. .Netcore之日志组件Log4net、Nlog性能比较

    转载请注明出处http://www.cnblogs.com/supernebula/p/7506993.html .Netcore之Log4net.Nlog性能比较 最近在写一个开源.netcore ...

  8. Asp.NetCore Web开发之Nlog日志配置

    接着讲基于ASP .net Core 的web开发,这节主要讲一下如何使用和配置Nlog进行日志记录. 日志在开发中的作用是很重要的,使用日志,程序出了错误可以及时捕获并记录下来,开发人员可以通过日志 ...

  9. .netcore 写日志(使用NLog,log4net)

    参考地址: NLog:http://www.cnblogs.com/linezero/p/Logging.html Log4Net:http://www.cnblogs.com/linezero/p/ ...

随机推荐

  1. DOM BOM 常用API小记

    DOM 1.元素节点: 元素节点element: 更精确的获得元素的标签名(全大写) 属性节点attribute: 属性名 文本节点text: #text 注释节点document:#document ...

  2. Hibernate学习笔记:注解@OneToMany和@ManyToOne的单独使用问题 不成对使用

    以某个实际场景为例,现在两张表:用户表User 订单表Order:很显然用户对订单是一对多的关系.二者注解如下 用户表User @Entity @Table(name="users" ...

  3. 【转】Linq表达式、Lambda表达式你更喜欢哪个?

    [转]Linq表达式.Lambda表达式你更喜欢哪个? 什么是Linq表达式?什么是Lambda表达式? 如图: 由此可见Linq表达式和Lambda表达式并没有什么可比性. 那与Lambda表达式相 ...

  4. PHP大数据处理要注意的

    1. 传递值使用引用传递 $a = get_large_array(); pass_to_function(&$a); 这样是传递变量的引用而不是拷贝 2.将大数据存在类的变量中 class ...

  5. Viewer.js 是一款强大的 jQuery 图像浏览插件。

    https://blog.csdn.net/qq_29132907/article/details/80136023 一.效果图  二.代码<!DOCTYPE html><html ...

  6. Java中的几种对象(POJO,PO,DTO,DAO,BO)

    j2ee中,经常提到几种对象(object),理解他们的含义有助于我们更好的理解面向对象的设计思维.     POJO(plain old java object):普通的java对象,有别于特殊的j ...

  7. 31、iOS 正则表达式判断UITextField是否为全汉字,全字母,全数字,数字和字母

    判断全汉字 if ([self deptNameInputShouldChinese]) { [DemonAlertHelper showToastWithMessage:@"只能是中文&q ...

  8. Web 开发

    Django(发音:[`dʒæŋɡəʊ]) 是一个开放源代码的Web应用框架,由Python写成.采用了MTV的框架模式,模型(Model).模板(Template)和视图(Views).

  9. 使用 docker compose 安装 tidb

    目标 : 单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群 前提条件: 1.centos版本在7.3 以上 2.安装git 3.安装docker Docker versi ...

  10. README.md 编写

    Spring Boot Demo =========================== 该文件用来测试和展示书写README的各种markdown语法.GitHub的markdown语法在标准的ma ...