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更多的介绍我们以后再讲,会介绍它的日志级别,日志模板等。