关于
log4net
无法将类型"System.RuntimeType"的对象强制转换为类型"log4net.Util.ConverterInfo",这个问题困饶我好多天了,经过连日来的问题排查,终于被我发现问题所在,终结点在于版本问题.
初建项目时,我引入的是log4net1.2.10,后来因为项目中需要用到websocket,另一个同事又引入了一个log4net1.2.11,好了问题来了,这两个log4net用的又是不同的配置文件,两个版本的切换,要么是websocket可以启动,又写不了日志,要不就是可以写日志,websocket又启动不来,两个版本总是不能兼容.
最后定下心来,想想,高版本一定会兼容低版本的啦,就冷静下来,将项目中的log4net全部换成1.2.11,现在的问题是要分析这两个版本之间的log4net的升级区别了.非常偶然,在网上找到了一个与我所写的log4net配置不同的一项,见下面的代码
不同点在于
value="%property{EventCategory}"
原先我用的log4net1.10.0的写法是:
作为具有多年工作经验的程序猿的本能,我感觉应该行了,试了试后,果不其然啊,真舒服,我成功解决了此问题
结论就是log4net1.10.0与log4net1.11.0的自定义属性写法不一样,新版本需要加入property属性