The ConfigureEmailLoggingAppender function in LogiingManager.cs should use the same SMTP mail server settings as in the rest of the BugNet application.
You will need to upgrade to the latest log4net.dll version (1.2.11) to get SSL SMTP server support. Also take care of the strong name key throughout the solution when selecting the version with the new key:
[Download Apache log4net](http://logging.apache.org/log4net/download_log4net.cgi)
The ConfigureEmailLoggingAppender function could be updated as follows:
```
public static void ConfigureEmailLoggingAppender()
{
var hier =
(log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();
if (hier == null) return;
var appender = (SmtpAppender)hier.Root.GetAppender("SmtpAppender") ?? new SmtpAppender();
appender.Name = "SmtpAppender";
appender.From = HostSettingManager.Get(HostSettingNames.HostEmailAddress, string.Empty);
appender.To = HostSettingManager.Get(HostSettingNames.ErrorLoggingEmailAddress, string.Empty);
appender.Subject = "BugNET Error";
appender.SmtpHost = HostSettingManager.SmtpServer;
appender.Port = int.Parse(HostSettingManager.Get(HostSettingNames.SMTPPort));
appender.Authentication = SmtpAppender.SmtpAuthentication.None;
appender.Username = string.Empty;
appender.Password = string.Empty;
appender.EnableSsl = Boolean.Parse(HostSettingManager.Get(HostSettingNames.SMTPUseSSL));
if (Convert.ToBoolean(HostSettingManager.Get(HostSettingNames.SMTPAuthentication)))
{
appender.Authentication = SmtpAppender.SmtpAuthentication.Basic;
appender.Username = String.Format("{0}\\{1}", HostSettingManager.Get(HostSettingNames.SMTPDomain, string.Empty), HostSettingManager.Get(HostSettingNames.SMTPUsername, string.Empty) );
appender.Password = HostSettingManager.Get(HostSettingNames.SMTPPassword, string.Empty);
}
//HostSettingManager.Get(HostSettingNames.SMTPAuthentication);
appender.Priority = System.Net.Mail.MailPriority.High;
appender.Threshold = log4net.Core.Level.Error;
appender.BufferSize = 0;
//create patternlayout
var patternLayout = new
log4net.Layout.PatternLayout("%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline");
patternLayout.ActivateOptions();
appender.Layout = patternLayout;
appender.ActivateOptions();
//add appender to root logger
hier.Root.AddAppender(appender);
}
```
Comments: Well I've been using 1.2.11 of log4net (with the old strong name key) for about a week now, and I haven't encountered any issues so far. I had to add a <bindingRedirect/> element in the Web.config to make sure that the existing BugNet assemblies, for which I do not have the source code, were able to use the new version: ``` <runtime> <!-- This prevents the Windows Event Log from frequently logging that HMAC1 is being used (when the other party needs it). --> <legacyHMACWarning enabled="0" /> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="log4net" publicKeyToken="1b44e1d426115821" culture="neutral" /> <bindingRedirect oldVersion="1.2.10.0" newVersion="1.2.11.0" /> </dependentAssembly> </assemblyBinding> </runtime> ```
You will need to upgrade to the latest log4net.dll version (1.2.11) to get SSL SMTP server support. Also take care of the strong name key throughout the solution when selecting the version with the new key:
[Download Apache log4net](http://logging.apache.org/log4net/download_log4net.cgi)
The ConfigureEmailLoggingAppender function could be updated as follows:
```
public static void ConfigureEmailLoggingAppender()
{
var hier =
(log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository();
if (hier == null) return;
var appender = (SmtpAppender)hier.Root.GetAppender("SmtpAppender") ?? new SmtpAppender();
appender.Name = "SmtpAppender";
appender.From = HostSettingManager.Get(HostSettingNames.HostEmailAddress, string.Empty);
appender.To = HostSettingManager.Get(HostSettingNames.ErrorLoggingEmailAddress, string.Empty);
appender.Subject = "BugNET Error";
appender.SmtpHost = HostSettingManager.SmtpServer;
appender.Port = int.Parse(HostSettingManager.Get(HostSettingNames.SMTPPort));
appender.Authentication = SmtpAppender.SmtpAuthentication.None;
appender.Username = string.Empty;
appender.Password = string.Empty;
appender.EnableSsl = Boolean.Parse(HostSettingManager.Get(HostSettingNames.SMTPUseSSL));
if (Convert.ToBoolean(HostSettingManager.Get(HostSettingNames.SMTPAuthentication)))
{
appender.Authentication = SmtpAppender.SmtpAuthentication.Basic;
appender.Username = String.Format("{0}\\{1}", HostSettingManager.Get(HostSettingNames.SMTPDomain, string.Empty), HostSettingManager.Get(HostSettingNames.SMTPUsername, string.Empty) );
appender.Password = HostSettingManager.Get(HostSettingNames.SMTPPassword, string.Empty);
}
//HostSettingManager.Get(HostSettingNames.SMTPAuthentication);
appender.Priority = System.Net.Mail.MailPriority.High;
appender.Threshold = log4net.Core.Level.Error;
appender.BufferSize = 0;
//create patternlayout
var patternLayout = new
log4net.Layout.PatternLayout("%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline");
patternLayout.ActivateOptions();
appender.Layout = patternLayout;
appender.ActivateOptions();
//add appender to root logger
hier.Root.AddAppender(appender);
}
```
Comments: Well I've been using 1.2.11 of log4net (with the old strong name key) for about a week now, and I haven't encountered any issues so far. I had to add a <bindingRedirect/> element in the Web.config to make sure that the existing BugNet assemblies, for which I do not have the source code, were able to use the new version: ``` <runtime> <!-- This prevents the Windows Event Log from frequently logging that HMAC1 is being used (when the other party needs it). --> <legacyHMACWarning enabled="0" /> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="log4net" publicKeyToken="1b44e1d426115821" culture="neutral" /> <bindingRedirect oldVersion="1.2.10.0" newVersion="1.2.11.0" /> </dependentAssembly> </assemblyBinding> </runtime> ```