2011-11-24 92 views
0

我可以使用log4j.smtpAppender触发附件(日志文件)的电子邮件。电子邮件附件使用log4j.smtpAppender

我目前正在使用此appender触发错误和致命级别异常的电子邮件。我可以添加日志文件在附件相同的电子邮件

log4j.appender.email=org.apache.log4j.net.SMTPAppender 

回答

1
public static void emailAttachment 
       throws AddressException, MessagingException{ 

    String host = mail.company.com; 
    String from = [email protected]; 
    String to = [email protected]; 
    String cc = [email protected]; 

    Properties props = System.getProperties(); 

    props.put("mail.smtp.host", host); 
    Session session = Session.getInstance(props, null); 

    MimeMessage message = new MimeMessage(session); 
    message.setFrom(new InternetAddress(from)); 
    message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); 
    message.addRecipient(Message.RecipientType.CC, new InternetAddress(cc)); 

    message.setSubject("Email Notification"); 
    MimeBodyPart messageBodyPart = new MimeBodyPart(); 

    messageBodyPart.setText("email Body"); 

    Multipart multipart = new MimeMultipart(); 
    multipart.addBodyPart(messageBodyPart); 
    messageBodyPart = new MimeBodyPart(); 
    DataSource source = new FileDataSource(fileAttachment); 
    messageBodyPart.setDataHandler(new DataHandler(source)); 
    messageBodyPart.setFileName("attachment.pdf"); 
    multipart.addBodyPart(messageBodyPart); 

    message.setContent(multipart); 

    Transport.send(message); 

} 

来源:jGuru.com

1

我认为你不能发送一个日志文件在同一封电子邮件。你当然可以配置几个appender来记录你的数据:例如一个发送电子邮件(SMTPAppender),其他打印到标准输出(ConsoleAppender)等。

此外,我不认为这是一个好主意,附上一个日志文件保存到同一封电子邮件中:每次发送新电子邮件时,日志文件将保持增长,并且假设您的日志长度大约为5MB ...然后日志记录会占用大量的处理能力。

+0

不完全的日志文件。但其他文件是100KB。我发现javaMail更适合我的需求 – gmeka