我正在尝试实现Quartz.Net。只要没有配置日志记录一切正常(调试输出显示“找不到配置部分 - 抑制日志输出”)。
启用日志记录后,我将收到以下错误:从配置部分'common / logging'获取Common.Logging的配置失败。
内部执行:为common / logging创建配置节处理程序时发生错误:无法创建类型'Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter,Common.Logging.Log4net'
我使用了多个资源this one来改变我的配置,但据我所知它应该是正确的。
我的app.config:
<configSections>
<section name="quartz" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<sectionGroup name="common">
<section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
</sectionGroup>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<common>
<logging>
<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net">
<arg key="configType" value="INLINE" />
</factoryAdapter>
</logging>
</common>
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-6p%d{yyyy-MM-dd hh:mm:ss} – %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
<quartz>
<add key="quartz.scheduler.instanceName" value="Driver.Service.Scheduler" />
<add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
<add key="quartz.threadPool.threadCount" value="10" />
<add key="quartz.threadPool.threadPriority" value="2" />
<add key="quartz.jobStore.misfireThreshold" value="60000" />
<add key="quartz.jobStore.type" value="Quartz.Simpl.RAMJobStore, Quartz" />
</quartz>
我引用了以下程序集:
quartz.dll,版本2.01.100
common.logging.dll,版本2.0.0.0
common.logging.log4net.dll,版本2.0.0.0
log4net.dll,版本1.2.10.0
我找不到给出错误的原因。欢迎所有的帮助,显然我忘记了......
答案 0 :(得分:12)
当我们升级到Common.Logging.Log4Net的新版本时,我们遇到了类似的情况,其中DLL名称从 Common.Logging.Log4Net改为 Common.Logging.Log4Net1211
因此,我们修改了配置文件以更改DLL名称:
<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net1211">
无论如何,错误肯定表明缺少DLL。
答案 1 :(得分:5)
您能否检查Common.Logging.Log4net.dll是否正被复制到bin输出文件夹。
你还确定你的内部异常(或者可能是几个级别的内部异常)没有内部异常吗?
答案 2 :(得分:0)
我不确定,但是在你的common / logging配置部分,有一次写入log4net,一次是log4Net(大写字母):
<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net">