总结
Log4net是下一个非常好的开源日志组件。Net。log4net日志功能非常强大。它可以将日志分为不同的等级,并以不同的格式输出到不同的媒体。
背景
前两天有个前同事问我如何以中间件的形式把log4net集成到core中。我不假思索地回答,应该有人做过这种题,他说没有,于是,我去博客公园搜索,发现根本没有这回事。所有这些都是传统的。他们直接去了日志管理器。所以我决定在周末有时间的时候调查这个问题。快速访问官网后,扩展第三方日志的核心在于两个界面:ILogger和ILoggerProvider。于是我搭建了解决方案,刷了刷,实现了这两个界面,当我差不多查完相关资料的时候,突然发现国外的同事已经实现了,我在尼玛辛苦了半天,彻底崩溃了。
切换四条路
本着懒惰、蔑视盲目造轮子/装逼的精神,解决方案直接切换到开源实现。其实顺便说一下,我看了第三方实现的源代码,四个路径是一样的,实现了那两个接口。
解决方案如下:
包参考如下:
上面我不多说,第二个问我,第三个是核心集成log4net的主角。关于这一点,需要注意的是,最新的版本是2.2.1,但是我没有引用最新的版本,而是2.1.0,因为最新版本的一些第三方包引用的原子包是最新的,而框架包最底层的原子包,微软。不是。因此,如果引用最新的第三方包,很可能会报告一个错误,即原子包依赖于错误的版本。有两种解决方案:1。哪个包报告错误,哪个原子包单独安装最新版本;2.将第三方软件包的版本切换到更高的版本,并找到与当前微软兼容的实现。解决方案1的问题是,当您更新这个原子包时,它的依赖包再次出错,当您更新它的依赖依赖时,它的依赖依赖再次出错。所以为了方便,我直接用了微软的低版本。extensions . logging . log 4 net . aspnet core.
Log4net.config不再截图,也不再拍代码,这和之前的美德没什么区别。
接下来,注册log4net:
图中前两行的功能是过滤掉命名空间中以System和Microsoft开头的组件生成的警告级别日志,但实际上主要是一些框架日志。第三行是注册log4net中间件。
接下来,创建一个新的控制器,并注入日志练习的效果:
上图中有两个红框,上面一个是构造函数注入日志界面,下面一个是调用日志组件记录日志。
好,让我们看看系统生成的日志,并调用:
控制台窗口:
好的,日志已经成功输出。接下来,让我们看看文件的关键输出:
请参阅,日志已通过log4net成功输出到文件中。
摘要
我觉得没什么好总结的。由提供的扩展。NET核心已经非常开放了。虽然log4net目前比较操蛋,但对于我们大多数人来说应该不是问题。网络开发者。
好了,这就是本文的全部内容。希望本文的内容对你的学习或工作有一定的参考价值。有问题可以留言交流。谢谢你的支持。