首页 新闻 会员 周边 捐助

netcore logger使用

0
悬赏园豆:60 [已解决问题] 解决于 2019-05-13 12:15

在asp.netcore mvc中使用logger
新建的一个类, 或者在其他类库项目里的类 如何使用logger.
比如ClassA中的一个方法. 方法中间我想记录一段日志.
该如何获取log.

已知可将ClassA在ConfigureServices中注入, 在需要的地方获取.
这样.如果我有很多类需使用log那岂不是得注册好多类

可有别的方法.

咖菲猫的主页 咖菲猫 | 初学一级 | 园豆:28
提问于:2019-05-09 18:14
< >
分享
最佳答案
1

services.addlongging();
service.addscope<A>();
service.addscope<B>();
使用的地方

class A{
public A(ILogger<A> logger){ this._logger=logger;}
public void myMethod(){
this._logger//use
}
}
class B{
public B(ILogger<B> logger)
}

收获园豆:40
czd890 | 专家六级 |园豆:14488 | 2019-05-09 18:17

thanks, 还有别的方法吗. 我在提问中已经说了是否还有除了这种以外的办法.

已知可将ClassA在ConfigureServices中注入, 在需要的地方获取.
这样.如果我有很多类需使用log那岂不是得注册好多类

咖菲猫 | 园豆:28 (初学一级) | 2019-05-09 18:27

@咖菲猫:
是的,你要这样想,这些好多类,如果你要用,你还是要new出来,现在有个统一的地方管理,可以让你知道有那些可以用。
如果觉得注册麻烦,可以考虑用autofac之类的帮你做一些自动发现。

其次,可以考虑使用一个静态共享变量把ILogger或者SericeProvider对象暴露出来。当然,这不推荐。

czd890 | 园豆:14488 (专家六级) | 2019-05-09 18:52

@czd890:
有道理, 多谢了.

咖菲猫 | 园豆:28 (初学一级) | 2019-05-09 19:19
其他回答(1)
1

使用依赖注入是更好的方式,如果你不想走正道,那可以用 Serilog 的静态方法

收获园豆:20
dudu | 园豆:29841 (高人七级) | 2019-05-09 18:36

可是确实是有点多.
我用了一个第三方的SDK. 重写了里面的一部分功能. 在想其中插入一些调试的 log.
这样一来. 我得注入很多类. 又或者说. 这种方式才是"正道"?

支持(0) 反对(0) 咖菲猫 | 园豆:28 (初学一级) | 2019-05-09 18:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册