我想在我的asp.net应用程序中使用Log4Net&我做了以下事情:
在Web.Config文件中
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<logger name="File">
<level value="All" />
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="Logs\\Log4Net.log"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/>
</layout>
</appender>
</logger>
</log4net>
在Global.asax
中<%@ Application Language="C#" %>
<script runat="server">
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
log4net.Config.XmlConfigurator.Configure();
}
和Page_load
try
{
// There is no such Session, this is just to create error
if (Session["userName"].ToString() == "Admin")
{
}
}
catch(Exception ex)
{
log4net.ILog logger = log4net.LogManager.GetLogger("File");
}
我也在我的BIN文件夹中添加了引用。
当我运行我的代码时,我按照预期得到了错误,然后在我的解决方案资源管理器中使用日志文件创建了新文件夹。但是日志文件是空的。
我无法猜测它为什么会发生,是否无法跟踪或记录错误?
请帮忙。提前致谢。
答案 0 :(得分:1)
正如leppie指出的那样,似乎没有任何代码可以写入日志消息。您的excpetion处理程序应该看起来像这样:
catch(Exception ex)
{
log4net.ILog logger = log4net.LogManager.GetLogger("File");
logger.Error("something went wrong", ex);
}
您发布的配置似乎也不完整。您需要log4net
部分(参见example configurations)。