Log4j Mail Özelleştirme
log4j ile yazılan logları mail olarak göndermek için yapılandırdınız fakat gönderdiğiniz mailleri size özel biçimlendirmek istiyorsunuz onun için yapmanız gerekenler
- org.apache.log4j.net.SMTPAppender classını extend eden bir class hazırlayın
- log4j içerisinde “log4j.appender.mail” özelliki için kendi hazırladığınız classı gösterin
- Aşağıdaki kodu bu classın içerisine ekleyerek istediğiniz gibi mesajınızı özelleştirebilirsiniz.
@Override
protected void sendBuffer() {
try {
MimeBodyPart part = new MimeBodyPart();
StringBuffer sbuf = new StringBuffer();
sbuf.append("Params : ");
sbuf.append(activeSessionParams());
sbuf.append("\n\r");
sbuf.append("Active Url : ");
sbuf.append(activeSessionURL());
sbuf.append("\n\r");
String t = layout.getHeader();
if (t != null)
sbuf.append(t);
int len = cb.length();
for (int i = 0; i < len; i++) {
// sbuf.append(MimeUtility.encodeText(layout.format(cb.get())));
LoggingEvent event = cb.get();
// setting the subject
if (i == 0) {
Layout subjectLayout = new PatternLayout(getSubject());
msg.setSubject(MimeUtility.encodeText(
subjectLayout.format(event), "UTF-8", null));
}
sbuf.append(layout.format(event));
if (layout.ignoresThrowable()) {
String[] s = event.getThrowableStrRep();
if (s != null) {
for (int j = 0; j < s.length; j++) {
sbuf.append(s[j]);
sbuf.append(Layout.LINE_SEP);
}
}
}
}
t = layout.getFooter();
if (t != null)
sbuf.append(t);
part.setContent(sbuf.toString(), layout.getContentType());
Multipart mp = new MimeMultipart();
mp.addBodyPart(part);
msg.setContent(mp);
msg.setSentDate(new Date());
Transport.send(msg);
} catch (Exception e) {
LogLog.error("Error occured while sending e-mail notification.", e);
}
}