Log4net – SmtpAppender
Ao se configurar o log4net para usar um SmtpAppender, para envio de e-mails com os logs da aplicação, deixo uma nota de reparo no que concerne o envio para vários destinatários:
A documentação refere que para diversos destinatários dever-se-à configurar o log4net separando os endereços por (;). Se assim for surgirá o seguinte erro:
System.FormatException: The specified string is not in the form required for an e-mail address.
at System.Net.Mime.MailBnfHelper.ReadMailAddress(String data, Int32& offset, String& displayName)
at System.Net.Mail.MailAddressCollection.ParseValue(String addresses)
at log4net.Appender.SmtpAppender.SendEmail(String messageBody)
at log4net.Appender.SmtpAppender.SendBuffer(LoggingEvent[] events)
Isto porque
O SmtpAppender do log4net recorre ao tipo System.Net.Mail. MailAddressCollection da Framework .NET, que por sua vez usa o método Add(string) para adicionar os endereços. Ora acontece que na documantação está o seguinte:
If multiple e-mail addresses separated with a semicolon character (";") are passed in the addresses parameter. a FormatException exception is raised.
Portanto a documentação do log4net pode induzir em erro. Modificar a separação dos endereços por (,) resolverá o problema.
Happy codding
autor: nuno.lourenco
Tags: Log4net SmtpAppender