2014-05-22 39 views
1

在服務器(Windows 2008)和IIS7上未創建日誌。我給了絕對路徑以及相對路徑。Log4net在Windows Server 2008的IIS7中不工作

我已賦予日誌文件夾的所有權利。我已經包含了網絡用戶IUsr和IIS_IUSRS,並且授予了每個用戶許可。也。

它不寫日誌到該文件夾​​

在web配置中的條目被如下

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> 

<log4net> 
<logger name="GeneralLogger"> 
<level value="ALL" /> 
<appender-ref ref="RollingFile" /> 
</logger> 
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> 
<file value="C:\\vhosts\\staging.customerportal.com\\log\\CustomerPortal.log"/> 
<appendToFile value="true"/> 
<datePattern value="yyyyMMdd"/> 
<rollingStyle value="Date"/> 
<filter type="log4net.Filter.LevelRangeFilter"> 
<acceptOnMatch value="true"/> 
<levelMin value="DEBUG"/> 
<levelMax value="FATAL"/> 
</filter> 
<layout type="log4net.Layout.PatternLayout"> 
<conversionPattern value="%-5p %d %5rms %X{addr} %-22.22c{1} %-18.18M - %m%n"/> 
</layout> 
</appender> 
</log4net> 

我曾試圖給出一個斜線和以及在Web配置文件值雙斜槓沒有用。

在Global.asax.cs中的代碼是AssemblyInfo.cs中

public class MvcApplication : System.Web.HttpApplication 
{ 
    private static log4net.ILog log = log4net.LogManager.GetLogger(typeof(MvcApplication)); 

    protected void Application_Start() 
    { 
     log4net.Config.XmlConfigurator.Configure(); 

    } 

代碼

[assembly: XmlConfigurator(ConfigFile="web.config", Watch=true)] 

我曾與此代碼,也沒有這個代碼的AssemblyInfo.cs

嘗試

它不工作。

在哪裏,當我在本地主機使用絕對路徑的日誌被寫入該文件夾正確

它失敗我曾試圖在控制文件這兩個選項的服務器

//private static log4net.ILog log =  
     log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)  ; 
    private static log4net.ILog log = log4net.LogManager.GetLogger("GeneralLogger"); 

我曾試過一個不存在的路徑,它沒有創建文件夾。

請幫幫我。請幫助我如何在服務器中使用log4net啓用日誌

+0

這SOU很像一個權限問題。您是否100%確定應用程序池下的用戶帳戶正在運行,對日誌文件夾具有寫入權限? – stuartd

回答

1

您正在通過調用Application_Start上的配置,在配置logmanager(實際上配置它兩次)之前初始化您的記錄器。

選項1:

public class MvcApplication : System.Web.HttpApplication 
{ 
private static log4net.ILog log = log4net.LogManager.GetLogger(typeof(MvcApplication)); 

protected void Application_Start() 
{ 
    //Remove: log4net.Config.XmlConfigurator.Configure(); 

} 

並保持:

[assembly: XmlConfigurator(ConfigFile="web.config", Watch=true)] 

選項2:

public class MvcApplication : System.Web.HttpApplication 
{ 
private static log4net.ILog log; 

protected void Application_Start() 
{ 
    log4net.Config.XmlConfigurator.Configure(); 
    log = log4net.LogManager.GetLogger(typeof(MvcApplication)); 
} 

,並刪除:

//Remove: [assembly: XmlConfigurator(ConfigFile="web.config", Watch=true)] 
相關問題