log4net没有写入日志

时间:2016-05-09 13:44:23

标签: c# log4net

我正在使用C#.Net编写一个webform电子邮件发送应用程序,我希望每次发送邮件时都记录在日志中。

这是我的webconfig文件

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


  <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="TestLog.txt"/>
      <appendToFile value="true"/>
      <rollingStyle value="Composite"/>
      <datePattern value="yyyyMMdd"/>
      <maxSizeRollBackups value="10"/>
      <maximumFileSize value="10MB"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="[%d{yyyy-MM-dd HH:mm:ss}] [%p] [%c:%L] - %m%n"/>
      </layout>
    </appender>
    <root>
      <level value="DEBUG"/>
      <appender-ref ref="RollingLogFileAppender"/>
    </root>
  </log4net>

 protected void Page_Load(object sender, EventArgs e)
    {
      log4net.Config.XmlConfigurator.Configure();
    }

我的班级定义下有这个属性

public partial class enviarMails : System.Web.UI.Page
{
    private static readonly ILog logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

我有这种写日志的方法

public void escribirLog(String msj) 
        {

            logger.Error(msj);

        }

1 个答案:

答案 0 :(得分:1)

您的代码中至少有两件事可以改变,或者让它更好/或者让它开始记录:

  1. 将configure调用移动到项目的启动。或者做一个 属性。
  2. 您的TestLog.txt将进入正在运行的应用程序的当前目录。您可能在该目录中没有任何权限。因此,将其更改为您知道自己拥有权利的完整路径
  3. 启用log4net内部调试以查看未创建文件的内部错误。或者看看它的创建地点。