2010-03-17 60 views
1

我有一臺Windows 2003生產機器上的iis服務器,它不會在.net3.5 web應用程序中使用log4net進行登錄。 Log4net在使用log4net版本1.2.9.0的1.1應用程序中正常工作,但不是3.5 web應用程序。日誌記錄在開發和暫存環境中工作正常,但不在生產環境中。它沒有錯誤,我也沒有收到事件查看器中記錄的事件,也不知道下一步要看哪裏。我已經嘗試了兩個版本的log4net(1.2.9.0和1.2.10.0),並且都在開發和分期階段工作,但不在生產階段。log4net不記錄混合使用.net 1.1和.net 3.5

出於測試目的,我創建了一個只有一個頁面的應用程序,它回擊了頁面被擊中的時間,並且應該使用log4net登錄到我的日誌文件。

這裏是我的web.config文件:

<configSections> 
    <!-- LOG4NET Configuration --> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" requirePermission="false" /> 
</configSections> 

<log4net debug="true"> 
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <param name="File" value="D:\DIF\Logs\TestApp\TestApp_"/> 
     <param name="AppendToFile" value="true"/> 
     <param name="RollingStyle" value="Date"/> 
     <param name="DatePattern" value="yyyyMMdd\.\l\o\g"/> 
     <param name="StaticLogFileName" value="false"/> 
     <layout type="log4net.Layout.PatternLayout"> 
      <param name="ConversionPattern" value="%date{HH:mm:ss} %C::%M [%-5level] - %message%newline"/> 
     </layout> 
    </appender> 
    <root> 
     <level value="ALL"/> 
     <appender-ref ref="RollingFileAppender"/> 
    </root> 
</log4net> 

這裏是我的log4net的初始化:

 // Logging for the application 
    private static ILog mlog = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 

    protected void Application_Start(object sender, EventArgs e) 
    { 
     try 
     { 
      // Start the configuration of the Logging 
      XmlConfigurator.Configure(); 

      mlog.Info("Started logging for the TestApp Application."); 
     } 
     catch (Exception ex) 
     { 
      throw; 
     } 
    } 

任何幫助將不勝感激。

感謝,

吉姆

回答

1

如果它工作在我用懷疑的權限啓動DEV和分期環境。查看您的3.5應用程序是否可以在與log4net輸出相同的位置寫入文件。

+0

喬,謝謝你指點我在正確的方向。這樣做後,它指出我當然有權限。這不是文件權限,但ISP具有「完全」信任的1.1 .net和「中等」信任的.net 3.5。我在Framework \ Config \ web.config文件中更改了它,並且瞧! 有時我不能相信你怎麼可以讓皮皮熊思考一種方式,它只是需要一些人拉你一點點,並指出你在正確的方向。謝謝!! – 2010-03-17 19:01:55