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 classSmtpManager.SMTPManagerFactoryFactory 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>bufferprivate MailManager.FactoryDatadataprivate jakarta.mail.internet.MimeMessagemessageprivate jakarta.mail.Sessionsession-
Fields inherited from class org.apache.logging.log4j.core.appender.AbstractManager
count, LOGGER
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedSmtpManager(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 voidadd(LogEvent event)Adds an event to the cyclic buffer.private voidconnect(LogEvent appendEvent)private static jakarta.mail.internet.MimeMessagecreateMimeMessage(MailManager.FactoryData data, jakarta.mail.Session session, LogEvent appendEvent)protected voidencodeContent(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.StringgetEncoding(byte[] rawBytes, java.lang.String contentType)protected jakarta.mail.internet.InternetHeadersgetHeaders(java.lang.String contentType, java.lang.String encoding)protected jakarta.mail.internet.MimeMultipartgetMimeMultipart(byte[] encodedBytes, jakarta.mail.internet.InternetHeaders headers)(package private) LogEvent[]removeAllBufferedEvents()voidsendEvents(Layout<?> layout, LogEvent appendEvent)Send the contents of the cyclic buffer as an e-mail message.protected voidsendMultipartMessage(jakarta.mail.internet.MimeMessage msg, jakarta.mail.internet.MimeMultipart mp)Deprecated.Please use thesendMultipartMessage(MimeMessage, MimeMultipart, String)method instead.protected voidsendMultipartMessage(jakarta.mail.internet.MimeMessage msg, jakarta.mail.internet.MimeMultipart mp, java.lang.String subject)protected voidwriteBuffer(LogEvent[] priorEvents, LogEvent appendEvent, Layout<?> layout, java.io.OutputStream out)private voidwriteContent(LogEvent[] priorEvents, LogEvent appendEvent, Layout<?> layout, java.io.ByteArrayOutputStream out)protected voidwriteFooter(Layout<?> layout, java.io.OutputStream out)protected voidwriteHeader(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:MailManagerAdds an event to the cyclic buffer.- Specified by:
addin classMailManager- Parameters:
event- The event to add.
-
sendEvents
public void sendEvents(Layout<?> layout, LogEvent appendEvent)
Description copied from class:MailManagerSend the contents of the cyclic buffer as an e-mail message.- Specified by:
sendEventsin 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.MessagingExceptionjava.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.MessagingExceptionjava.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.MessagingExceptionDeprecated.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)
-
-