2011-06-20 4 views
7

Я не могу написать журнал любой информации, ошибки, отладки с использованием log4net, я пробовал все, что давало persission для сетевого сервиса, каждый в директории asp.net temp folder , папка журнала, даже c: \,Log4net не в состоянии писать, только создавая пустые файлы, но не записывая фактические журналы

просто создайте пустой файл. но не писать журнал

что может быть вопросом

THx Радж

+4

Если log4net может создавать файлы, это, вероятно, не проблема. Вы уверены, что ведение журнала включено для уровня журнала, который вы тестируете? Пожалуйста, покажите нам имеющуюся конфигурацию log4net. – driis

+0

Я согласен с driis здесь. Если вы дадите нам свою конфигурацию log4net, мы можем сказать вам, что это не так, и сузить наш пул предложений. –

ответ

9

Мое предположение было бы, что в вашем конфигурационном файле, вы не указали шаблон макета. Обычно у вас есть что-то подобное в вашем приложении:

<layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %level %logger - %message%newline" /> 
</layout> 

Это указывает, что писать в журнал. Если у вас этого нет, я сомневаюсь, что он что-нибудь напишет.

Я согласен с комментариями, которые сказали, что это, вероятно, не проблема, потому что файл создается. Чтобы проверить, что это так, вы можете добавить приложение в свою конфигурацию, которая выводится на консоль. Затем вы можете наблюдать за выходом при отладке приложения. Если это не сработает, вы знаете, что проблема не является проблемой разрешения.

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

http://www.codeproject.com/KB/dotnet/Log4net_Tutorial.aspx

Если все это не помогает, пожалуйста, напишите текст в конфигурационный файл ваш вопрос, чтобы мы могли просмотреть его.

2

Одной из возможных причин этой проблемы может быть Уровень ведения журнала. Проверьте уровень Logging установлен в FATAL и если это так, попробуйте заменить эту часть web.config:

<log4net> 
     ..... 
     <root> 
       <level value="FATAL" /> 
       <appender-ref ref="RollingFileAppender" /> 
      </root> 
     ..... 
    </log4net> 

с этим:

<log4net> 
    ...... 
    <root> 
     <level value="DEBUG" /> 
      <appender-ref ref="RollingFileAppender" /> 
     </root> 
    .... 
</log4net> 

Furthemore не забудьте проверить в web.config в некоторых возможных случаях в некоторых случаях

<filter type="log4net.Filter.StringMatchFilter"> 
    <stringToMatch value="test" /> 
    </filter> 

подраздел. В этом случае, даже если уровень протоколирования устанавливается в DEBUG (например), и вы положить в код somethig как:

log.Debug("Db quering..."); 

всегда будет возвращать пустой, но если вы пишете, например:

log.Debug("test: Db quering..."); 

Попробуйте поэтому закомментируйте секции фильтра, а также эта линия

<filter type="log4net.Filter.DenyAllFilter" /> 

этот момент, наконец, вы должны получить его работу !!

Надеюсь, это поможет

 Смежные вопросы

  • Нет связанных вопросов^_^