【发布时间】:2010-05-25 10:06:17
【问题描述】:
当我将我的解决方案更新到 .net 4.0 时,我在 log4net 中遇到了问题,然后我下载了它的源代码并构建了 log4net 并将其定位到 .net 4.0 并在我的项目中使用它。
最初,当我提到针对运行时 2.0 的 log4net 时,它编译并运行了应用程序,但日志不起作用。
现在,当我使用面向 .net 4.0 的 log4net 运行我的项目时,我收到错误 "The type initializer for 'Log4NetTest.TestLog' threw an exception."
有什么办法解决这个问题吗?
编辑:这是内部异常:
InnerException: System.TypeLoadException Message=重写成员时违反了继承安全规则: 'log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)'。 覆盖方法的安全可访问性必须与被覆盖方法的安全可访问性相匹配。 来源=log4net TypeName=log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext) 堆栈跟踪: 在 log4net.Repository.Hierarchy.Hierarchy..ctor(ILoggerFactory loggerFactory) 在 C:\src\Repository\Hierarchy\Hierarchy.cs:line 150 中的 log4net.Repository.Hierarchy.Hierarchy..ctor()【问题讨论】:
-
看看嵌套异常是什么——看看类型初始化器是什么异常,这将帮助你诊断它。
-
乔恩,我在问题中添加了内部异常
-
嗨,我通过将 [assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)] 添加到 log4net AssemblyInfo 来修复它,但现在它没有记录
-
log4net 尚未在 4.0 上得到正式支持 - issues.apache.org/jira/browse/LOG4NET-233