在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文件,并能写入内容,说明权限已经被赋予。但为什么日志文件却没有产生?请各位帮忙分析一下。
<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文件,并能写入内容,说明权限已经被赋予。但为什么日志文件却没有产生?请各位帮忙分析一下。
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.");
}
}
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里 却也不能生成 日志呢???