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. Spring访问数据库(方式上跟HQL类似,每行记录映射一个实体类)

    看了这篇技术博客,觉得收获较大,收藏了:http://sarin.iteye.com/blog/875915

  2. jvm相关知识点

    1.hotspot虚拟机结构:类加载器.堆.栈.方法区.垃圾回收系统.执行引擎.本地方法栈.pc寄存器. 类加载器:负责将class文件从文件系统加载到方法区. 堆:存放对象的一块区域,所有线程共用. ...

  3. BS架构如何实现即时消息提醒

    转载地址:https://blog.csdn.net/cyjch/article/details/51506434

  4. VB.NET中的DLL编写和调用的最简单示例

    DLL(动态链接库)是一个很有用的东西,在开发大项目的时候显得非常重要,因为多人合作开发时,可以给每个人分配一个任务,用DLL完成,最后组合起来,就不会出现互相冲突的问题.这里给出最简单的DLL编写与 ...

  5. Linux运维之docker虚拟化部署nginx

    一.Docker的概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱 ...

  6. 通俗理解 CPU && GPU

    CPU 力气大啥P事都能干,还要协调.GPU 上面那家伙的小弟,老大让他处理图形,这方面处理简单,但是量大,老大虽然能处理,可是老大只有那么几个兄弟,所以不如交给小弟处理了,小弟兄弟多,有数百至数千个 ...

  7. 2019.01.22 poj2926 Requirements(状态压缩)

    传送门 题意:给一堆五维的点,求最远点对. 思路:跟CF1093G差不多 考虑把正负号状压成一个323232以内的数,然后对于每一类分别求最大最小值再做差更新答案即可. 代码: #include< ...

  8. Matlab编辑器背景修改

    将下段代码如到C:\Users\Peng Chen\AppData\Roaming\MathWorks\MATLAB\R2016a\matlab.prf 先备份.prf,再替代之前的. #MATLAB ...

  9. .Net 导出Excel时设置单元格的格式为文本类型

    <td style= 'vnd.ms-excel.numberformat:@ ' align='right'>" & Format(Val(rowTitle.Item( ...

  10. 学习刘伟择优excel视频

    for each 字符串函数: 默认参数,在子函数中必须要有默认值. 在工作表输入时,F9的功能是把区域编程数组,shift+ctrl+enter功能是把数组分开填入单元格. 创建数组: 1. 2. ...