微网站免费开发平台,百度推广一年大概多少钱,网站开发专业就业前系军,银川网站建设推广1.背景前两天#xff0c;曾经的一个同事咨询我#xff0c;怎样将log4net以中间件的形式整合到core里边去。我不假思索的回答#xff0c;这种问题应该有人做过吧#xff0c;他说没有。于是#xff0c;我去博客园搜了下#xff0c;发现还真没有#xff0c;全部都是传统.NE… 1.背景 前两天曾经的一个同事咨询我怎样将log4net以中间件的形式整合到core里边去。我不假思索的回答这种问题应该有人做过吧他说没有。于是我去博客园搜了下发现还真没有全部都是传统.NET那一套直接LogManager.GetLogger于是趁着周末有时间决定调研下这个问题。去巨硬官网快速浏览了下扩展第三方日志的核心就在于两个接口ILogger和ILoggerProvider。于是建好解决方案刷刷刷实现这两个接口实现差不多了查相关资料时猛然发现卧槽已经有国外同仁实现过了我尼玛的辛苦写半天这下彻底垮了。。。2.切换四路 本着偷懒、鄙视瞎造轮子/装逼的心态 直接把解决方案切换到开源实现。实际上顺便看了下第三方实现源码四路也是一致的实现那两个接口。解决方案如下 包引用如下最上边的不多说第二个别问我第三个就是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输出到文件。 3.总结 感觉没什么好总结的.net core提供的扩展已经很开放了虽然log4net目前比较操蛋但这对咱大部分.NET开发者来说应该都不是事儿。原文地址https://www.cnblogs.com/guokun/p/9250055.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com