2012-07-10 95 views
0

我試圖讓在log4net的遺留應用程序的工作,但我得到這個例外在啓動時(從DBGVIEW):log4net的不工作,沒有文件創建,獲取異常消息

log4net的: ERROR XmlHierarchyConfigurator:對象類型 [log4net.Appender.FileAppender]不可分配給類型 [log4net.Appender.FileAppender + LockingModelBase]。沒有 可接受的類型轉換。

log4net的:ERROR XmlHierarchyConfigurator:無法創建對象設置 PARAM:lockingModel

這是什麼意思,更重要的是,我怎麼沉默這個錯誤,使工作?這是在Outlook插件,如果這有什麼區別。這是我的app.config文件(節錄由於保密的一些非必要的部分):

<configuration> 
    <configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/> 
    </configSections> 
    <log4net> 
    <root> 
     <level value="DEBUG" /> 
     <appender-ref ref="LogFileAppender" /> 
    </root> 
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" > 
     <param name="File" value="c:\errlog.txt" /> 
     <param name="AppendToFile" value="true" /> 
     <rollingStyle value="Size" /> 
     <maxSizeRollBackups value="10" /> 
     <maximumFileSize value="10MB" /> 
     <staticLogFileName value="true" /> 
     <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n" /> 
     </layout> 
    </appender> 
    </log4net>  
    <system.diagnostics> 
    <sources> 
     <source name="System.Net" tracemode="includehex" maxdatasize="1024"> 
      <listeners> 
       <add name="System.Net"/> 
      </listeners> 
     </source> 
     <source name="System.Net.Sockets"> 
      <listeners> 
       <add name="System.Net"/> 
      </listeners> 
     </source> 
     <source name="System.Net.Cache"> 
      <listeners> 
       <add name="System.Net"/> 
      </listeners> 
     </source> 
    </sources> 
    <switches> 
     <add name="System.Net" value="Verbose"/> 
     <add name="System.Net.Sockets" value="Verbose"/> 
     <!--add name="System.Net.Cache" value="Verbose"/--> 
    </switches> 
    <sharedListeners> 
     <add name="System.Net" 
      type="System.Diagnostics.TextWriterTraceListener" 
      initializeData="network.log" /> 
    </sharedListeners> 
    <trace autoflush="true"/> 
    </system.diagnostics> 
    </appSettings> 
</configuration> 

我發現了一些其他職位說,加入行<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />要解決這個問題,但它不能解決任何事。我正在尋找的最終結果是一個日誌文件,其中包含的信息將允許我調試此應用程序,我如何才能使這件事情起作用?

另外,我已經讀了其他幾個相關的問題(其中幾十個),這是我見過的唯一一個,即使有相同的異常消息,並且沒有提供任何答案對我來說:Unable to set property [lockingModel] on object [log4net.Appender.RollingFileAppender] using value [MinimalLock]

回答

0

我沒有手頭的編譯器,但是當我比較我的工作配置集的純文本配置,我相信你錯過了

<file value="PATHTOFILE\error.log" /> 

instread你有

<param name="File" value="PATHTOFILE\error.log" /> 

這種差異看起來像是可能的原因。

+1

我只是嘗試這樣的變化,但我仍然得到同樣的錯誤。 – 2012-07-12 18:57:42

0

您將某些內容保存到C:的根目錄,請檢查您是否有權這樣做。我遇到了同樣的問題,但我將文件保存到d解決:或一些C文件夾: 有這是一個嘗試下根配置:

<!--log to file--> 
<system.diagnostics> 
    <trace autoflush="true"> 
    <listeners> 
     <add 
     name="textWriterTraceListener" 
     type="System.Diagnostics.TextWriterTraceListener" 
     initializeData="C:\Users\Klaus\Documents\log4net.txt" /> 
    </listeners> 
    </trace> 
</system.diagnostics>