我在让 log4net 从 ASP.NET 3.5 工作时遇到了一些麻烦。这是我第一次尝试使用 log4net,我觉得我错过了一块拼图。
我的项目引用了 log4net 程序集,据我所知,它已成功部署在我的服务器上。
我的 web.config 包含以下内容:
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler
, log4net"
requirePermission="false"/>
</configSections>
<log4net>
<appender name="InfoAppender" type="log4net.Appender.FileAppender">
<file value="..\..\logs\\InfoLog.html" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern
value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
</appender>
<logger name="_Default">
<level value="INFO" />
<appender-ref ref="InfoAppender" />
</logger>
</log4net>
我正在使用以下代码来测试记录器:
using log4net;
using log4net.Config;
public partial class _Default : System.Web.UI.Page
{
private static readonly ILog log = LogManager.GetLogger("_Default");
protected void Page_Load(object sender, EventArgs e)
{
log.Info("Hello logging world!");
}
}
在我的 Global.asax 中,我正在执行以下操作:
void Application_Start(object sender, EventArgs e)
{
log4net.Config.XmlConfigurator.Configure();
}
在这一点上,我想不出我可能做错了什么。我试图存储登录的目录是可写的,即使我尝试不同的目录,我也会得到相同的结果:没有文件,没有日志。
有什么建议么?:-)
编辑:我为日志文件的路径和名称尝试了几种不同的格式,其中一些包括“..\..\InfoLog.html”、“InfoLog.html”、“logs\InfoLog.html”等,以防万一有人想知道这是否是问题所在。
编辑:我已将根记录器节点添加回 log4net 部分,我在从示例中复制时无意中忽略了这一点。根记录器节点如下所示:
<root>
<level value="INFO" />
<appender-ref ref="InfoAppender" />
</root>
然而,即使有了它,我仍然没有运气。