Файл журнала становится пустым после ошибки в Log4Net - PullRequest
0 голосов
/ 06 августа 2010

Я хочу использовать Log4Net в своем приложении asp.net, и я сделал следующие вещи:

В файле 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.

Когда я запускаю свой код, я получаю сообщение об ошибке, как и ожидалось, и после создания этой новой папки в обозревателе решений с помощью файла журнала. Но файл журнала пуст.

Я не догадываюсь, почему это произошло, не может ли он отследить или записать ошибку ??

Пожалуйста, помогите. Заранее спасибо.

1 Ответ

1 голос
/ 06 августа 2010

Как указал Леппи, похоже, что нет никакого кода, который пишет сообщение журнала.Ваш обработчик исключений должен выглядеть примерно так:

catch(Exception ex)
{
    log4net.ILog logger = log4net.LogManager.GetLogger("File");
    logger.Error("something went wrong", ex);
}

Конфигурация, которую вы разместили, также кажется неполной.Вам нужен раздел log4net (ср. пример конфигурации ).

...