2013-08-21 54 views
0

我正在爲Internet Explorer 9.0創建一個添加(類庫(.dll))。並希望使用log4net dll進行日誌記錄。log4net不記錄使用.net 4.0創建的類庫

我使用以下

  • .NET 4.0
  • Visual Studio 2010中
  • log4net的版本 - 1.2.11.0(用於.NET 4.0)

我已經創建了一個應用程序.config文件,這裏是我正在使用的配置,

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
     <section name="log4net" 
     type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, 
     Version=1.2.11.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a"/> 
    </configSections> 

    <log4net> 
     <appender name="RollingLogFileAppender" 
     type="log4net.Appender.RollingFileAppender"> 
      <param name="File" value="D:\\Temp\\Temp.log"/> 
      <param name="AppendToFile" value="true"/> 
      <param name="MaxSizeRollBackups" value="30"/> 
      <param name="MaximumFileSize" value="10MB"/> 
      <param name="RollingStyle" value="Date" /> 
      <param name="StaticLogFileName" value="true"/> 
      <param name="DatePattern" value="yyyyMMdd" /> 
      <layout type="log4net.Layout.PatternLayout"> 
       <param name="Header" value="[Header]\r\n"/> 
       <param name="Footer" value="[Footer]\r\n"/> 
       <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - (%F:%L) 
       %m%n"/> 
      </layout> 
     </appender> 
     <root> 
      <level value="ALL"/> 
      <appender-ref ref="RollingLogFileAppender"/> 
     </root> 
    </log4net> 
</configuration> 

添加以下代碼行AssemblyInfo.cs文件

[assembly: log4net.Config.XmlConfigurator(Watch = true)] 

添加以下代碼行DocumentComplete事件處理程序。這會觸發Internet Explorer頁面加載。

log4net.Config.XmlConfigurator.Configure(); 

當我的插件已啓用並正在運行。我看不到在指定路徑「D:\ Temp \ Temp.log」中創建任何日誌。我有點困惑。

任何幫助將不勝感激。

感謝

回答

1

非常感謝所有的答覆

問題與Internet Explorer在保護模式下運行。運行在保護模式下的Internet Explorer會將添加的寫入文件限制在磁盤上。

我做我的配置還有一個變化就是添加下面一行Assembly.cs文件

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "C:\\Program 
Files\\Temp\\app.config", Watch = true)] 
0

我猜你正在運行的應用程序,那麼您應該將代碼添加到EXE它的app.config。如果您使用的是Web應用程序,請將該配置添加到web.config文件中。我還要檢查和更改雙斜槓在:

<param name="File" value="D:\Temp\Temp.log"/> 

當你正在運行的web應用,你需要檢查應用程序池的用戶的訪問權限d:\ TEMP \路徑(完全訪問權限) 。

如果您使用您assambly屬性,你並不需要調用:

log4net.Config.XmlConfigurator.Configure(); 
+0

我說我的代碼的app.config並檢查(使用雙斜槓和單斜槓)。在這兩種情況下,它都不起作用。我在assemblyinfo.cs文件 – kvbrahmam

+0

中添加了[assembly:log4net.Config.XmlConfigurator(Watch = true)]我發現這是由於Internet Explorer在保護模式下運行造成的。所以我的插件不能寫任何東西到磁盤。有沒有辦法繞過這一點。提前致謝 – kvbrahmam