.NET 黑魔法 - asp.net core 日志系统
2024-08-25 21:09:29
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更多的介绍我们以后再讲,会介绍它的日志级别,日志模板等。
最新文章
- Junit mockito 测试Controller层方法有Pageable异常
- .net源码分析 - ConcurrentDictionary<;TKey, TValue>;
- Android View的onTouchEvent和OnTouch区别
- VS2012给同一个解决方案添加多个项目
- 理解CSS居中
- 兼容IE,Firefox,Opera等浏览器的添加到收藏夹js代码实现
- 什么是LeapMotion
- windows下使用waveout函数族播放wav文件
- python--IO模块
- SpringBoot 标签之启动
- [python]Generators
- jQuery-全屏滚动插件【fullPage.js】API 使用方法总结
- 【java】之彻底明白进制转换
- (转载)关于java多线程web服务器 以及相关资料转载
- 分析params_s方法
- kbmmw 5.06.20 发布
- 是否要学点GUI编程
- python基础学习之路No.3 控制流if,while,for
- 4.12 Routing -- Preventing And Retrying Transitions
- jenkins修改时区