在asp.net2.0下使用log4net,加了ASPNET用户,也给了写权限。但始终无法写日志。配置和代码如下: --------------------------------- [web.config文件] <?xml version="1.0" encoding="utf-8"? > <configuration > 
   
   <configSections > 
     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/ > 
   </configSections > 
     
   <system.web > 
     <compilation debug="true" / > 
     <authentication mode="Windows" / > 
   </system.web >    <log4net >      <appender name="LogFileAppender" type="log4net.Appender.FileAppender" > 
       <param name="File" value="D:\Log\Log4Net.log"/ > 
       <layout type="log4net.Layout.PatternLayout" > 
         <param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/ > 
       </layout > 
     </appender > 
     <logger name="File" > 
       <level value="ALL" / > 
       <appender-ref ref="LogFileAppender" / > 
     </logger >    </log4net > </configuration > 
[Global.asax文件] <%@ Application Language="C#" % > <script runat="server" >     void Application_Start(object sender, EventArgs e)  
    {         
        log4net.Config.BasicConfigurator.Configure ( ); 
    } 
     
    void Application_End(object sender, EventArgs e)  
    {} 
         
    void Application_Error(object sender, EventArgs e)  
    {}     void Session_Start(object sender, EventArgs e)  
    {}     void Session_End(object sender, EventArgs e)  
    {} 
        
</script > 
[Default.aspx.cs文件] using System; 
using System.Data; 
using System.Configuration; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
using log4net; public partial class _Default : System.Web.UI.Page  

    protected void Page_Load(object sender, EventArgs e) 
    { 
        ILog logger = log4net.LogManager.GetLogger ("File"); 
        logger.Info ( "Just test log4net."); 
    } 
} --------------------------------- D:\Log 已加ASPNET用户,并给予了“完全控制”的权限,仍然无法写日志(Log4Net.log文件也没有生成)。 我还试过在Default.aspx.cs中的Page_Load方法内加入如下代码: ------------------------- 
string fileName = "D:\\Log\\test.txt"; 
using (System.IO.FileStream fs = System.IO.File.Create (fileName))  

  byte[] info = new System.Text.UTF8Encoding (true).GetBytes ("Test test test."); 
  fs.Write (info, 0, info.Length); 

------------------------- 这段代码可以在D:\Log下产生test.txt文件,并能写入内容,说明权限已经被赋予。但为什么日志文件却没有产生?请各位帮忙分析一下。

解决方案 »

  1.   

    没有人么?我google了很多文章,试了多次均没有成功
      

  2.   

    一直用XmlConfigurator,没用过Basic的。
      

  3.   

    试试这个呢?
    using System; 
    using System.Data; 
    using System.Configuration; 
    using System.Web; 
    using System.Web.Security; 
    using System.Web.UI; 
    using System.Web.UI.WebControls; 
    using System.Web.UI.WebControls.WebParts; 
    using System.Web.UI.HtmlControls; 
    using log4net;  
    [assembly: log4net.Config.XmlConfigurator(ConfigFile = "Web.config", Watch = true)]
    public partial class _Default : System.Web.UI.Page  

        protected void Page_Load(object sender, EventArgs e) 
        { 
            ILog logger = log4net.LogManager.GetLogger ("File"); 
            logger.Info ( "Just test log4net."); 
        } 
      

  4.   


    using System; 
    using System.Data; 
    using System.Configuration; 
    using System.Web; 
    using System.Web.Security; 
    using System.Web.UI; 
    using System.Web.UI.WebControls; 
    using System.Web.UI.WebControls.WebParts; 
    using System.Web.UI.HtmlControls; 
    using log4net;  
    [assembly: log4net.Config.XmlConfigurator(ConfigFile = "Web.config", Watch = true)]
    public partial class _Default : System.Web.UI.Page  

        protected void Page_Load(object sender, EventArgs e) 
        { 
            ILog logger = log4net.LogManager.GetLogger ("File"); 
            logger.Info ( "Just test log4net."); 
        } 
    }谢谢啦,我的问题也解决了。可是有个问题  为什么我将  [assembly: log4net.Config.XmlConfigurator(ConfigFile = "Web.config", Watch = true)] 写在Global.asax.as里 却也不能生成 日志呢???