asp.net core 里如何记录日志呢?

这要从asp.net core的依赖注入说起,在asp.net core里的依赖注入真是无所不在,各种面向切面的接口与事件。

好吧,来点干货。

首先,我们希望有这样一种调用方式(或者说asp.net core集成的日志功能只能用这种方式):

在asp.net core里,框架内的很多功能都是依赖注入,不需要new XXX(),只需要在对象的构造函数里注入就好啦。 上图的ILogger<LogController> logger,就是asp.net core日志功能的接口。

this.logger.LogInformation("这里是日志信息的消息"); 就是记录一个信息日志,通常跟业务相关。 this.logger.LogError(e, e.StackTrace, new string[] { "附加参数1", "附加参数2" });就是记录一个异常日志。

当然,还有其他级别的方法,比如.LogDebug(),.LogWarning() 等等。

到此,如何使用日志功能已经讲完了,下来我们看看怎么配置它。

注意途中Startup方法和Configure方法,这里我们用了NLog,那么NLog是什么呢?

其实他是asp.net core ILogger接口的实现,我要通过接口注入,又没有实例化的代码,所以实例化的工作只能交由别人来做了,各位有兴趣可以实现一套自己的日志系统。

最后,别忘了把名为nlog.config的配置文件放在项目根目录,它决定了我们日志系统的行为,比如模板等等:

关于NLog更多的介绍我们以后再讲,会介绍它的日志级别,日志模板等。

最新文章

  1. Junit mockito 测试Controller层方法有Pageable异常
  2. .net源码分析 - ConcurrentDictionary&lt;TKey, TValue&gt;
  3. Android View的onTouchEvent和OnTouch区别
  4. VS2012给同一个解决方案添加多个项目
  5. 理解CSS居中
  6. 兼容IE,Firefox,Opera等浏览器的添加到收藏夹js代码实现
  7. 什么是LeapMotion
  8. windows下使用waveout函数族播放wav文件
  9. python--IO模块
  10. SpringBoot 标签之启动
  11. [python]Generators
  12. jQuery-全屏滚动插件【fullPage.js】API 使用方法总结
  13. 【java】之彻底明白进制转换
  14. (转载)关于java多线程web服务器 以及相关资料转载
  15. 分析params_s方法
  16. kbmmw 5.06.20 发布
  17. 是否要学点GUI编程
  18. python基础学习之路No.3 控制流if,while,for
  19. 4.12 Routing -- Preventing And Retrying Transitions
  20. jenkins修改时区

热门文章

  1. El表达式对照表
  2. Python开发【笔记】:PEP 8 编码规范
  3. Swift中"#"的用法
  4. sharepoint webapp 部署注意点
  5. centos中文语言安装
  6. nodejs 学习四 处理回调地狱
  7. webpack中loader和plugin的概念理解
  8. vuex是什么?怎么使用?哪种功能场景使用它?
  9. $(document).ready()方法和window.onload有什么区别?
  10. Linux下安装jdk1.7