2010-02-09 6 views
13

Я использую log4net для отправки писем при возникновении какой-либо ошибки приложения. Я настроил log4net, но почта не была возвращена. Ниже приведена конфигурация:Log4net - smtp appender не работает

<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender"> 
     <to value="[email protected]"/> 
     <from value="[email protected]"/> 
     <subject value="ERROR | MRM Application"/> 
     <smtpHost value="relaymail.sapient.com"/> 
     <bufferSize value="512"/> 
     <lossy value="true"/> 
     <evaluator type="log4net.Core.LevelEvaluator"> 
      <threshold value="ALL"/> 
     </evaluator> 
     <layout type="log4net.Layout.PatternLayout,log4net"> 
      <conversionPattern value="%property{log4net:HostName} :: %level :: %message %newlineLogger: %logger%newlineThread: %thread%newlineDate: %date%newlineNDC: %property{NDC}%newline%newline"/> 
     </layout> 
    </appender> 

Есть ли другие изменения, которые необходимо внести?

+0

пожалуйста, напишите всю оставшуюся log4net.config и как вы его инициализируете. –

+0

Вы можете войти в другие приложения? –

+0

, если вы хотите получать электронные сообщения об ошибках, вы должны установить порог в ОШИБКУ –

ответ

10

Проверьте, требуется ли SMTP-аутентификация.

Также значение bufferSize = "512" означает, что оно будет собирать 512 сообщений перед отправкой электронной почты. Я почти уверен, что ты этого не хочешь.

+2

Я изменил его до 1. все еще не получая писем. Есть ли другая конфигурация, которая должна быть выполнена отдельно от web.config – Ankit

12

Он выглядит хорошо. Чтобы увидеть некоторые log4net отладочных сообщений в консоли добавить следующие строки в app.config

<appSettings> 
    <add key="log4net.Internal.Debug" value="true"/> 
    </appSettings> 

Может быть, это даст вам подсказку.

+2

Я нашел эту статью полезной, она описывает более подробно, как это сделать: http://david.gardiner.net.au/2008/11 /log4nets-smtpappender-with-multiple.html –

+0

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

4
<lossy value="false" /> 

это помогло мне

5

Я также обнаружил, что Appender должен ссылаться на корневой элемент, как, например:

<root> 
     <level value="INFO"/> 
     <appender-ref ref="LogFileAppender"/> 
     <appender-ref ref="ConsoleAppender"/> 
     <appender-ref ref="SmtpAppender"/>  
    </root> 
    </log4net> 
+0

Это было для меня, ура! –

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