public class AmqpAppender
extends ch.qos.logback.core.AppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
A fully-configured AmqpAppender, with every option set to their defaults, would look like this:
<appender name="AMQP" class="org.springframework.amqp.rabbit.logback.AmqpAppender">
<layout>
<pattern><![CDATA[ %d %p %t [%c] - <%m>%n ]]></pattern>
</layout>
<!-- <abbreviation>36</abbreviation --> <!-- no category abbreviation by default -->
<applicationId>AmqpAppenderTest</applicationId>
<routingKeyPattern>%property{applicationId}.%c.%p</routingKeyPattern>
<generateId>true</generateId>
<charset>UTF-8</charset>
<durable>false</durable>
<deliveryMode>NON_PERSISTENT</deliveryMode>
</appender>
Modifier and Type | Class and Description |
---|---|
protected static class |
AmqpAppender.Event
Small helper class to encapsulate a LoggingEvent, its MDC properties, and the number of retries.
|
protected class |
AmqpAppender.EventSender
Helper class to actually send LoggingEvents asynchronously.
|
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
APPLICATION_ID
Key name for the application id (if there is one set via the appender config) in the message properties.
|
static java.lang.String |
CATEGORY_LEVEL
Key name for the logger level name in the message properties
|
static java.lang.String |
CATEGORY_NAME
Key name for the logger category name in the message properties
|
static java.lang.String |
THREAD_NAME
Key name for the thread name in the message properties.
|
Constructor and Description |
---|
AmqpAppender() |
Modifier and Type | Method and Description |
---|---|
protected void |
append(ch.qos.logback.classic.spi.ILoggingEvent event) |
protected void |
configureRabbitConnectionFactory(RabbitConnectionFactoryBean factoryBean)
Configure the
RabbitConnectionFactoryBean . |
protected java.util.concurrent.BlockingQueue<AmqpAppender.Event> |
createEventQueue()
Subclasses can override this method to inject a custom queue implementation.
|
protected com.rabbitmq.client.ConnectionFactory |
createRabbitConnectionFactory()
Create the
ConnectionFactory . |
java.lang.String |
getAddresses() |
java.lang.String |
getApplicationId() |
java.lang.String |
getCharset() |
java.lang.String |
getContentEncoding() |
java.lang.String |
getContentType() |
java.lang.String |
getDeliveryMode() |
ch.qos.logback.core.encoder.Encoder<ch.qos.logback.classic.spi.ILoggingEvent> |
getEncoder() |
java.lang.String |
getExchangeName() |
java.lang.String |
getExchangeType() |
java.lang.String |
getHost() |
java.lang.String |
getKeyStore() |
java.lang.String |
getKeyStorePassphrase() |
java.lang.String |
getKeyStoreType() |
int |
getMaxSenderRetries() |
java.lang.String |
getPassword() |
java.lang.Integer |
getPort() |
int |
getQueuedEventCount()
Return the number of events waiting to be sent.
|
java.lang.String |
getRoutingKeyPattern() |
int |
getSenderPoolSize() |
java.lang.String |
getSslAlgorithm() |
java.lang.String |
getSslPropertiesLocation() |
java.lang.String |
getTrustStore() |
java.lang.String |
getTrustStorePassphrase() |
java.lang.String |
getTrustStoreType() |
java.net.URI |
getUri() |
java.lang.String |
getUsername() |
java.lang.String |
getVirtualHost() |
boolean |
isAutoDelete() |
boolean |
isDeclareExchange() |
boolean |
isDurable() |
boolean |
isGenerateId() |
boolean |
isIncludeCallerData() |
boolean |
isUseSsl() |
Message |
postProcessMessageBeforeSend(Message message,
AmqpAppender.Event event)
Subclasses may modify the final message before sending.
|
void |
setAbbreviation(int len) |
void |
setAddresses(java.lang.String addresses) |
void |
setApplicationId(java.lang.String applicationId) |
void |
setAutoDelete(boolean autoDelete) |
void |
setCharset(java.lang.String charset) |
void |
setClientConnectionProperties(java.lang.String clientConnectionProperties)
Set additional client connection properties to be added to the rabbit connection,
with the form
key:value[,key:value]... . |
void |
setContentEncoding(java.lang.String contentEncoding) |
void |
setContentType(java.lang.String contentType) |
void |
setDeclareExchange(boolean declareExchange) |
void |
setDeliveryMode(java.lang.String deliveryMode) |
void |
setDurable(boolean durable) |
void |
setEncoder(ch.qos.logback.core.encoder.Encoder<ch.qos.logback.classic.spi.ILoggingEvent> encoder) |
void |
setExchangeName(java.lang.String exchangeName) |
void |
setExchangeType(java.lang.String exchangeType) |
void |
setGenerateId(boolean generateId) |
void |
setHost(java.lang.String host) |
void |
setIncludeCallerData(boolean includeCallerData)
If true, the caller data will be available in the target AMQP message.
|
void |
setKeyStore(java.lang.String keyStore) |
void |
setKeyStorePassphrase(java.lang.String keyStorePassphrase) |
void |
setKeyStoreType(java.lang.String keyStoreType) |
void |
setLayout(ch.qos.logback.core.Layout<ch.qos.logback.classic.spi.ILoggingEvent> layout) |
void |
setMaxSenderRetries(int maxSenderRetries) |
void |
setPassword(java.lang.String password) |
void |
setPort(java.lang.Integer port) |
void |
setRoutingKeyPattern(java.lang.String routingKeyPattern) |
void |
setSenderPoolSize(int senderPoolSize) |
void |
setSslAlgorithm(java.lang.String sslAlgorithm) |
void |
setSslPropertiesLocation(java.lang.String sslPropertiesLocation) |
void |
setTrustStore(java.lang.String trustStore) |
void |
setTrustStorePassphrase(java.lang.String trustStorePassphrase) |
void |
setTrustStoreType(java.lang.String trustStoreType) |
protected void |
setUpExchangeDeclaration() |
void |
setUri(java.net.URI uri) |
void |
setUsername(java.lang.String username) |
void |
setUseSsl(boolean ssl) |
void |
setVirtualHost(java.lang.String virtualHost) |
void |
start() |
void |
stop() |
protected void |
updateConnectionClientProperties(java.util.Map<java.lang.String,java.lang.Object> clientProperties)
Subclasses can override this method to add properties to the connection client
properties.
|
addFilter, clearAllFilters, doAppend, getCopyOfAttachedFiltersList, getFilterChainDecision, getName, isStarted, setName, toString
addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, getDeclaredOrigin, getStatusManager, setContext
public static final java.lang.String APPLICATION_ID
public static final java.lang.String CATEGORY_NAME
public static final java.lang.String CATEGORY_LEVEL
public static final java.lang.String THREAD_NAME
public void setRoutingKeyPattern(java.lang.String routingKeyPattern)
public java.net.URI getUri()
public void setUri(java.net.URI uri)
public java.lang.String getHost()
public void setHost(java.lang.String host)
public java.lang.Integer getPort()
public void setPort(java.lang.Integer port)
public void setAddresses(java.lang.String addresses)
public java.lang.String getAddresses()
public java.lang.String getVirtualHost()
public void setVirtualHost(java.lang.String virtualHost)
public java.lang.String getUsername()
public void setUsername(java.lang.String username)
public java.lang.String getPassword()
public void setPassword(java.lang.String password)
public boolean isUseSsl()
public void setUseSsl(boolean ssl)
public java.lang.String getSslAlgorithm()
public void setSslAlgorithm(java.lang.String sslAlgorithm)
public java.lang.String getSslPropertiesLocation()
public void setSslPropertiesLocation(java.lang.String sslPropertiesLocation)
public java.lang.String getKeyStore()
public void setKeyStore(java.lang.String keyStore)
public java.lang.String getKeyStorePassphrase()
public void setKeyStorePassphrase(java.lang.String keyStorePassphrase)
public java.lang.String getKeyStoreType()
public void setKeyStoreType(java.lang.String keyStoreType)
public java.lang.String getTrustStore()
public void setTrustStore(java.lang.String trustStore)
public java.lang.String getTrustStorePassphrase()
public void setTrustStorePassphrase(java.lang.String trustStorePassphrase)
public java.lang.String getTrustStoreType()
public void setTrustStoreType(java.lang.String trustStoreType)
public java.lang.String getExchangeName()
public void setExchangeName(java.lang.String exchangeName)
public java.lang.String getExchangeType()
public void setExchangeType(java.lang.String exchangeType)
public java.lang.String getRoutingKeyPattern()
public boolean isDeclareExchange()
public void setDeclareExchange(boolean declareExchange)
public java.lang.String getContentType()
public void setContentType(java.lang.String contentType)
public java.lang.String getContentEncoding()
public void setContentEncoding(java.lang.String contentEncoding)
public java.lang.String getApplicationId()
public void setApplicationId(java.lang.String applicationId)
public int getSenderPoolSize()
public void setSenderPoolSize(int senderPoolSize)
public int getMaxSenderRetries()
public void setMaxSenderRetries(int maxSenderRetries)
public boolean isDurable()
public void setDurable(boolean durable)
public java.lang.String getDeliveryMode()
public void setDeliveryMode(java.lang.String deliveryMode)
public boolean isAutoDelete()
public void setAutoDelete(boolean autoDelete)
public boolean isGenerateId()
public void setGenerateId(boolean generateId)
public java.lang.String getCharset()
public void setCharset(java.lang.String charset)
public void setLayout(ch.qos.logback.core.Layout<ch.qos.logback.classic.spi.ILoggingEvent> layout)
public ch.qos.logback.core.encoder.Encoder<ch.qos.logback.classic.spi.ILoggingEvent> getEncoder()
public void setEncoder(ch.qos.logback.core.encoder.Encoder<ch.qos.logback.classic.spi.ILoggingEvent> encoder)
public void setAbbreviation(int len)
public int getQueuedEventCount()
public void setClientConnectionProperties(java.lang.String clientConnectionProperties)
key:value[,key:value]...
.clientConnectionProperties
- the properties.public boolean isIncludeCallerData()
public void setIncludeCallerData(boolean includeCallerData)
includeCallerData
- include or on caller dataILoggingEvent.getCallerData()
public void start()
start
in interface ch.qos.logback.core.spi.LifeCycle
start
in class ch.qos.logback.core.AppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
protected com.rabbitmq.client.ConnectionFactory createRabbitConnectionFactory()
ConnectionFactory
.ConnectionFactory
.protected void configureRabbitConnectionFactory(RabbitConnectionFactoryBean factoryBean)
RabbitConnectionFactoryBean
. Sub-classes may override to
customize the configuration of the bean.factoryBean
- the RabbitConnectionFactoryBean
.protected void updateConnectionClientProperties(java.util.Map<java.lang.String,java.lang.Object> clientProperties)
clientProperties
- the client properties.protected java.util.concurrent.BlockingQueue<AmqpAppender.Event> createEventQueue()
public void stop()
stop
in interface ch.qos.logback.core.spi.LifeCycle
stop
in class ch.qos.logback.core.AppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
protected void append(ch.qos.logback.classic.spi.ILoggingEvent event)
append
in class ch.qos.logback.core.AppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
protected void setUpExchangeDeclaration()
public Message postProcessMessageBeforeSend(Message message, AmqpAppender.Event event)
message
- The message.event
- The event.