View Javadoc

1   package pt.digitalis.dif.utils.logging;
2   
3   import java.io.PrintWriter;
4   import java.io.StringWriter;
5   
6   import pt.digitalis.dif.utils.mail.MailSender;
7   import pt.digitalis.dif.utils.mail.MailType;
8   import pt.digitalis.log.LogLevel;
9   import pt.digitalis.utils.common.StringUtils;
10  
11  /**
12   * @author Galaio da Silva <a href="mailto:jgalaio@digitalis.pt">jgalaio@digitalis.pt</a><br/>
13   * @created 16/04/2014
14   */
15  public class ErrorLogManagerDIFLoggerImpl implements IErrorLogManager {
16  
17      /**
18       * @see pt.digitalis.dif.utils.logging.IErrorLogManager#logError(java.lang.String, java.lang.String,
19       *      java.lang.Exception)
20       */
21      public void logError(String applicationName, String processName, Exception e)
22      {
23  
24          String errorMessage = "";
25          StringWriter errors = new StringWriter();
26          e.printStackTrace(new PrintWriter(errors));
27          errorMessage += "Exception: " + errors.toString() + "\n";
28  
29          this.logError(applicationName, processName, errorMessage);
30      }
31  
32      /**
33       * @see pt.digitalis.dif.utils.logging.IErrorLogManager#logError(java.lang.String, java.lang.String,
34       *      java.lang.String)
35       */
36      public void logError(String applicationName, String processName, String errorDescription)
37      {
38  
39          DIFLogger.getLogger().error(
40                  "AplicationName: " + applicationName + " - ProcessName: " + processName + " - ErrorDescription: "
41                          + errorDescription);
42  
43          if (!StringUtils.isBlank(LoggingConfiguration.getInstance().getErrorLogEmailAddress())
44                  && !StringUtils.isBlank(LoggingConfiguration.getInstance().getErrorLogEmailBody())
45                  && !StringUtils.isBlank(LoggingConfiguration.getInstance().getErrorLogEmailSubject()))
46          {
47              try
48              {
49                  MailSender.getInstance().sendEmail(MailType.PLAIN_TEXT,
50                          MailSender.getInstance().getConfiguration().getDefaultFromAddress(),
51                          LoggingConfiguration.getInstance().getErrorLogEmailAddress(), null, null,
52                          LoggingConfiguration.getInstance().getErrorLogEmailSubject(),
53                          LoggingConfiguration.getInstance().getErrorLogEmailBody(), null, null, true);
54              }
55              catch (Exception e)
56              {
57                  DIFLogger.getLogger().log(LogLevel.INFO, "Error sending Email in ErrorLogManager" + e);
58              }
59          }
60      }
61  }