美文网首页
简书Start,一个新的征程

简书Start,一个新的征程

作者: 朝夕Net社区 | 来源:发表于2018-12-10 16:50 被阅读0次

一、背景

曾经的一个同事咨询我,怎样将log4net以中间件的形式整合到core里边去。我不假思索的回答,这种问题应该有人做过吧,他说没有。

于是,我去博客园搜了下,发现还真没有,全部都是传统.NET那一套,直接LogManager.GetLogger,于是趁着周末有时间,决定调研下这个问题。

官网快速浏览了下,扩展第三方日志的核心就在于两个接口:ILogger和ILoggerProvider。

于是建好解决方案,刷刷刷实现这两个接口,实现差不多了查相关资料时,猛然发现,卧槽,已经有国外同仁实现过了,我尼玛的辛苦写半天,这下彻底垮了。。。

二、切换思路

本着偷懒、鄙视瞎造轮子/装逼的心态, 直接把解决方案切换到开源实现。实际上顺便看了下第三方实现源码,思路也是一致的,实现那两个接口。

解决方案如下:

包引用如下:

最上边的不多说,第二个别问我,第三个就是core整合log4net的主角。关于这个,得特别说明下,最新版本是2.2.1,但我并没有引用最新的,而是2.1.0,因为目前有些第三方包最新版本引用的原子包是最新的,而上边第二个鬼东东Microsoft.AspNetCore.App这个框架包底层的原子包却并不是,所以如果引用最新的第三方包,很可能会报某个原子包依赖版本不对的错误。

解决方案有二:

1、哪个包报错,你单独安装哪个原子包的最新版本;

2、切换第三方包的版本到较次,找到能够兼容当前Microsoft.AspNetCore.App的实现。解决方案1的问题是,你更新了这个原子包,它的依赖包又出错,你更新了它的依赖的依赖,它的依赖的依赖的依赖又出错。。。所以,方便起见,我直接用了Microsoft.Extensions.Logging.Log4Net.AspNetCore的较低版本。

log4net.config不再截图或上代码,跟以前的德行没啥两样。

接下来,注册log4net:

图中,前两行的作用是过滤掉System和Microsoft开头的命名空间下的组件产生的警告级别一下的日志,实际上主要就是一些框架性日志。第三行便是注册log4net中间件。

接下来新建控制器,注入日志实践下效果:

上图两个红框,上边一个是构造器注入日志接口,下边是调用日志组件记录日志。

好,接下来我们去看看系统产生的日志,先调用:

控制台窗口:

OK,日志已经输出成功,接下来,我们看关键性的输出到文件:

看到没有,日志已经成功经由log4net输出到文件。

【本文由“专注net技术”发布,2018年12月10日】

相关文章

  • 简书Start,一个新的征程

    一、背景 曾经的一个同事咨询我,怎样将log4net以中间件的形式整合到core里边去。我不假思索的回答,这种问题...

  • 简书新征程

    今天的简书资产首次超过2500钻贝,排名也到达新高。虽然获取资产很慢,也还是有所积累了。不知不觉,又坚持了超过10...

  • 兔年简书新征程

    日更896天,排名351位。 两年半的时间总收益65,000,手中还有贝,要选个好价位出手。希望新的一年里,贝价还...

  • 简书,我的新征程

    为什么我会选择简书 现在,文字类的自媒体社区已经有了两个庞然大物——微博和知乎。那里太过热闹,不适合我。其中真正让...

  • 你好,简书;你好,陌生人。

    与简书相遇的第一天 新的开始,新的征程 good luck to myself 晚安

  • 简书start

  • Start 简书

    我是一个普通大学毕业的学生,现在在一家软件公司上班。(俗称:程序员) 没用过简书,也没什么文采。只是想记下偶尔心血...

  • 在简书开始新的征程

    正好网上看到一篇文章,说的就是过于忙碌会导致对外界事物的判断以及对于以后的规划等的注意力会变少。这正是我现在的状态...

  • 认识简书,开启新的征程

    记得前些天在一个网站里有人推荐如果有写作的可以去简书,抒发自己的情感,也有好的平台发展。 于是我就下载了,并且注册...

  • 20220905-新的简书征程

    昨天家里搞大卫生了,不得不说,宽敞的环境让人心情舒畅,所以要继续保持哦。其实从搞卫生这些琐事,也是能得到快乐的。 ...

网友评论

      本文标题:简书Start,一个新的征程

      本文链接:https://www.haomeiwen.com/subject/vfldhqtx.html