SMTP Appender - проблема с log4net - PullRequest
3 голосов
/ 23 июня 2011

У меня проблемы с работой моего приложения SMTP:

У меня есть следующие настройки файла конфигурации:

<log4net>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
  <param name="File" value="folder\\filelog.log"/>
  <layout type="log4net.Layout.PatternLayout">
    <param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/>
  </layout>
</appender>
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
  <to value="xxx@mail.com" />
  <from value="xxx@mail.com" />
  <subject value="Error in site" />
  <smtpHost value="111.111.111.111" />
  <authentication value="1"/>
  <username Value="user@name.co.uk" />
  <password value="password" />
  <port value="25" />
  <bufferSize value="1" />
  <lossy value="false" />
  <threshold value="ALL"/>
  <evaluator type="log4net.Core.LevelEvaluator">
    <threshold value="ALL"/>
  </evaluator>
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%newline%date [%thread] %-5level %logger [%property] - %message%newline%newline%newline" />
  </layout>
</appender>

<logger name="File">
  <level value="All" />
  <appender-ref ref="LogFileAppender" />
</logger>

<logger name="EmailAppender">
  <level value="ALL" />
  <appender-ref ref="SmtpAppender" />
</logger>

Я пытаюсь зарегистрировать ОШИБКУ, чтобы увидеть, получаю ли я электронное письмо:

            log4net.Config.XmlConfigurator.Configure();
        ILog logger = LogManager.GetLogger("EmailAppender");
        logger.Error("uyyy: " + DateTime.Now.ToLongDateString());

Электронная почта не приходит. Если я переключаюсь на «Файл», он регистрируется правильно.

Я знаю, что введенные мной учетные данные верны, поскольку я использую их в других местах системы без проблем.

РЕДАКТИРОВАТЬ: я попытался запустить с моей выше "скрытой" конфигурации, и потребовалось некоторое время, чтобы запустить logger.Error строку, прежде чем продолжить. С моими реальными деталями, он работает сразу, без задержки.

Ответы [ 2 ]

1 голос
/ 30 сентября 2011

С - http://logging.apache.org/log4net/release/sdk/log4net.Appender.SmtpAppender.html

«ВНИМАНИЕ». Аутентификация и настройка порта сервера доступны только во время выполнения MS .NET 1.1. Чтобы эти функции были включены, необходимо убедиться, что вы используете версию сборки log4net, созданную на основе MS .NET 1.1 Framework и то, что вы запускаете свое приложение во время выполнения MS .NET 1.1. На всех других платформах поддерживается только отправка сообщений без проверки подлинности на сервер, прослушивающий порт 25 (по умолчанию). "

Не знаю точно, но я понимаю, что для любого приложения, созданного на более поздних версиях .NET, чем 1.1, аутентификация не будет работать. Вы используете 1.1 или более позднюю версию?

0 голосов
/ 07 сентября 2012

добавить это в конец секции конфигурации

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

вы сможете отследить ошибку

...