Package org.apache.logging.log4j.smtp
Class SmtpManager
- java.lang.Object
-
- org.apache.logging.log4j.core.appender.AbstractManager
-
- org.apache.logging.log4j.core.net.MailManager
-
- org.apache.logging.log4j.smtp.SmtpManager
-
- All Implemented Interfaces:
java.lang.AutoCloseable
public class SmtpManager extends MailManager
Manager for sending SMTP events.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SmtpManager.SMTPManagerFactory
Factory to create the SMTP Manager.-
Nested classes/interfaces inherited from class org.apache.logging.log4j.core.net.MailManager
MailManager.FactoryData
-
Nested classes/interfaces inherited from class org.apache.logging.log4j.core.appender.AbstractManager
AbstractManager.AbstractFactoryData
-
-
Field Summary
Fields Modifier and Type Field Description private CyclicBuffer<LogEvent>
buffer
private MailManager.FactoryData
data
private jakarta.mail.internet.MimeMessage
message
private jakarta.mail.Session
session
-
Fields inherited from class org.apache.logging.log4j.core.appender.AbstractManager
count, LOGGER
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
SmtpManager(java.lang.String name, jakarta.mail.Session session, jakarta.mail.internet.MimeMessage message, MailManager.FactoryData data)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
add(LogEvent event)
Adds an event to the cyclic buffer.private void
connect(LogEvent appendEvent)
private static jakarta.mail.internet.MimeMessage
createMimeMessage(MailManager.FactoryData data, jakarta.mail.Session session, LogEvent appendEvent)
protected void
encodeContent(byte[] bytes, java.lang.String encoding, java.io.ByteArrayOutputStream out)
protected byte[]
encodeContentToBytes(byte[] rawBytes, java.lang.String encoding)
protected byte[]
formatContentToBytes(LogEvent[] priorEvents, LogEvent appendEvent, Layout<?> layout)
protected java.lang.String
getEncoding(byte[] rawBytes, java.lang.String contentType)
protected jakarta.mail.internet.InternetHeaders
getHeaders(java.lang.String contentType, java.lang.String encoding)
protected jakarta.mail.internet.MimeMultipart
getMimeMultipart(byte[] encodedBytes, jakarta.mail.internet.InternetHeaders headers)
(package private) LogEvent[]
removeAllBufferedEvents()
void
sendEvents(Layout<?> layout, LogEvent appendEvent)
Send the contents of the cyclic buffer as an e-mail message.protected void
sendMultipartMessage(jakarta.mail.internet.MimeMessage msg, jakarta.mail.internet.MimeMultipart mp)
Deprecated.Please use thesendMultipartMessage(MimeMessage, MimeMultipart, String)
method instead.protected void
sendMultipartMessage(jakarta.mail.internet.MimeMessage msg, jakarta.mail.internet.MimeMultipart mp, java.lang.String subject)
protected void
writeBuffer(LogEvent[] priorEvents, LogEvent appendEvent, Layout<?> layout, java.io.OutputStream out)
private void
writeContent(LogEvent[] priorEvents, LogEvent appendEvent, Layout<?> layout, java.io.ByteArrayOutputStream out)
protected void
writeFooter(Layout<?> layout, java.io.OutputStream out)
protected void
writeHeader(Layout<?> layout, java.io.OutputStream out)
-
Methods inherited from class org.apache.logging.log4j.core.appender.AbstractManager
close, getContentFormat, getCount, getLoggerContext, getManager, getName, getStrSubstitutor, hasManager, log, logDebug, logError, logger, logWarn, narrow, release, releaseSub, stop, updateData
-
-
-
-
Field Detail
-
session
private final jakarta.mail.Session session
-
buffer
private final CyclicBuffer<LogEvent> buffer
-
message
private volatile jakarta.mail.internet.MimeMessage message
-
data
private final MailManager.FactoryData data
-
-
Constructor Detail
-
SmtpManager
protected SmtpManager(java.lang.String name, jakarta.mail.Session session, jakarta.mail.internet.MimeMessage message, MailManager.FactoryData data)
-
-
Method Detail
-
createMimeMessage
private static jakarta.mail.internet.MimeMessage createMimeMessage(MailManager.FactoryData data, jakarta.mail.Session session, LogEvent appendEvent) throws jakarta.mail.MessagingException
- Throws:
jakarta.mail.MessagingException
-
add
public void add(LogEvent event)
Description copied from class:MailManager
Adds an event to the cyclic buffer.- Specified by:
add
in classMailManager
- Parameters:
event
- The event to add.
-
sendEvents
public void sendEvents(Layout<?> layout, LogEvent appendEvent)
Description copied from class:MailManager
Send the contents of the cyclic buffer as an e-mail message.- Specified by:
sendEvents
in classMailManager
- Parameters:
layout
- The layout for formatting the events.appendEvent
- The event that triggered the send.
-
removeAllBufferedEvents
LogEvent[] removeAllBufferedEvents()
-
formatContentToBytes
protected byte[] formatContentToBytes(LogEvent[] priorEvents, LogEvent appendEvent, Layout<?> layout) throws java.io.IOException
- Throws:
java.io.IOException
-
writeContent
private void writeContent(LogEvent[] priorEvents, LogEvent appendEvent, Layout<?> layout, java.io.ByteArrayOutputStream out) throws java.io.IOException
- Throws:
java.io.IOException
-
writeHeader
protected void writeHeader(Layout<?> layout, java.io.OutputStream out) throws java.io.IOException
- Throws:
java.io.IOException
-
writeBuffer
protected void writeBuffer(LogEvent[] priorEvents, LogEvent appendEvent, Layout<?> layout, java.io.OutputStream out) throws java.io.IOException
- Throws:
java.io.IOException
-
writeFooter
protected void writeFooter(Layout<?> layout, java.io.OutputStream out) throws java.io.IOException
- Throws:
java.io.IOException
-
getEncoding
protected java.lang.String getEncoding(byte[] rawBytes, java.lang.String contentType)
-
encodeContentToBytes
protected byte[] encodeContentToBytes(byte[] rawBytes, java.lang.String encoding) throws jakarta.mail.MessagingException, java.io.IOException
- Throws:
jakarta.mail.MessagingException
java.io.IOException
-
encodeContent
protected void encodeContent(byte[] bytes, java.lang.String encoding, java.io.ByteArrayOutputStream out) throws jakarta.mail.MessagingException, java.io.IOException
- Throws:
jakarta.mail.MessagingException
java.io.IOException
-
getHeaders
protected jakarta.mail.internet.InternetHeaders getHeaders(java.lang.String contentType, java.lang.String encoding)
-
getMimeMultipart
protected jakarta.mail.internet.MimeMultipart getMimeMultipart(byte[] encodedBytes, jakarta.mail.internet.InternetHeaders headers) throws jakarta.mail.MessagingException
- Throws:
jakarta.mail.MessagingException
-
sendMultipartMessage
@Deprecated protected void sendMultipartMessage(jakarta.mail.internet.MimeMessage msg, jakarta.mail.internet.MimeMultipart mp) throws jakarta.mail.MessagingException
Deprecated.Please use thesendMultipartMessage(MimeMessage, MimeMultipart, String)
method instead.- Throws:
jakarta.mail.MessagingException
-
sendMultipartMessage
protected void sendMultipartMessage(jakarta.mail.internet.MimeMessage msg, jakarta.mail.internet.MimeMultipart mp, java.lang.String subject) throws jakarta.mail.MessagingException
- Throws:
jakarta.mail.MessagingException
-
connect
private void connect(LogEvent appendEvent)
-
-