Log4net - smtp appender не работает

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

    <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>

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

Ответ 1

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

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

Возможно, это даст вам подсказку.

Ответ 2

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

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

Ответ 3

Я также узнал, что в корневом элементе должен быть указан appender:

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

Ответ 4

<lossy value="false" />

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