Class AmqpAppender

java.lang.Object
ch.qos.logback.core.spi.ContextAwareBase
ch.qos.logback.core.AppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
org.springframework.amqp.rabbit.logback.AmqpAppender
All Implemented Interfaces:
ch.qos.logback.core.Appender<ch.qos.logback.classic.spi.ILoggingEvent>, ch.qos.logback.core.spi.ContextAware, ch.qos.logback.core.spi.FilterAttachable<ch.qos.logback.classic.spi.ILoggingEvent>, ch.qos.logback.core.spi.LifeCycle

public class AmqpAppender extends ch.qos.logback.core.AppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
A Logback appender that publishes logging events to an AMQP Exchange.

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>
 
 
Since:
1.4
Author:
Artem Bilan, Gary Russell, Stephen Oakey, Dominique Villard, Nicolas Ristock, Eugene Gusev, Wayne Chu
  • Field Details

    • APPLICATION_ID

      public static final String APPLICATION_ID
      Key name for the application id (if there is one set via the appender config) in the message properties.
      See Also:
    • CATEGORY_NAME

      public static final String CATEGORY_NAME
      Key name for the logger category name in the message properties
      See Also:
    • CATEGORY_LEVEL

      public static final String CATEGORY_LEVEL
      Key name for the logger level name in the message properties
      See Also:
    • THREAD_NAME

      public static final String THREAD_NAME
      Key name for the thread name in the message properties.
      See Also:
  • Constructor Details

    • AmqpAppender

      public AmqpAppender()
  • Method Details

    • setRoutingKeyPattern

      public void setRoutingKeyPattern(String routingKeyPattern)
    • getUri

      public URI getUri()
    • setUri

      public void setUri(URI uri)
    • getHost

      public String getHost()
    • setHost

      public void setHost(String host)
    • getPort

      public Integer getPort()
    • setPort

      public void setPort(Integer port)
    • setAddresses

      public void setAddresses(String addresses)
    • getAddresses

      public String getAddresses()
    • getVirtualHost

      public String getVirtualHost()
    • setVirtualHost

      public void setVirtualHost(String virtualHost)
    • getUsername

      public String getUsername()
    • setUsername

      public void setUsername(String username)
    • getPassword

      public String getPassword()
    • setPassword

      public void setPassword(String password)
    • isUseSsl

      public boolean isUseSsl()
    • setUseSsl

      public void setUseSsl(boolean ssl)
    • setVerifyHostname

      public void setVerifyHostname(boolean enable)
      Enable server hostname verification for TLS connections.
      Parameters:
      enable - false to disable.
      Since:
      2.1.6
      See Also:
    • isVerifyHostname

      public boolean isVerifyHostname()
      Return true (default) if TLS hostname verification is enabled.
      Returns:
      true (default) if TLS hostname verification is enabled.
      Since:
      2.1.6
    • getSslAlgorithm

      public String getSslAlgorithm()
    • setSslAlgorithm

      public void setSslAlgorithm(String sslAlgorithm)
    • getSslPropertiesLocation

      public String getSslPropertiesLocation()
    • setSslPropertiesLocation

      public void setSslPropertiesLocation(String sslPropertiesLocation)
    • getKeyStore

      public String getKeyStore()
    • setKeyStore

      public void setKeyStore(String keyStore)
    • getKeyStorePassphrase

      public String getKeyStorePassphrase()
    • setKeyStorePassphrase

      public void setKeyStorePassphrase(String keyStorePassphrase)
    • getKeyStoreType

      public String getKeyStoreType()
    • setKeyStoreType

      public void setKeyStoreType(String keyStoreType)
    • getTrustStore

      public String getTrustStore()
    • setTrustStore

      public void setTrustStore(String trustStore)
    • getTrustStorePassphrase

      public String getTrustStorePassphrase()
    • setTrustStorePassphrase

      public void setTrustStorePassphrase(String trustStorePassphrase)
    • getTrustStoreType

      public String getTrustStoreType()
    • setTrustStoreType

      public void setTrustStoreType(String trustStoreType)
    • getSaslConfig

      public String getSaslConfig()
    • setSaslConfig

      public void setSaslConfig(String saslConfig)
      Set the SaslConfig.
      Parameters:
      saslConfig - the saslConfig to set
      Since:
      1.7.14
      See Also:
    • getExchangeName

      public String getExchangeName()
    • setExchangeName

      public void setExchangeName(String exchangeName)
    • getExchangeType

      public String getExchangeType()
    • setExchangeType

      public void setExchangeType(String exchangeType)
    • getRoutingKeyPattern

      public String getRoutingKeyPattern()
    • isDeclareExchange

      public boolean isDeclareExchange()
    • setDeclareExchange

      public void setDeclareExchange(boolean declareExchange)
    • getContentType

      public String getContentType()
    • setContentType

      public void setContentType(String contentType)
    • getContentEncoding

      public String getContentEncoding()
    • setContentEncoding

      public void setContentEncoding(String contentEncoding)
    • getApplicationId

      public String getApplicationId()
    • setApplicationId

      public void setApplicationId(String applicationId)
    • getSenderPoolSize

      public int getSenderPoolSize()
    • setSenderPoolSize

      public void setSenderPoolSize(int senderPoolSize)
    • getMaxSenderRetries

      public int getMaxSenderRetries()
    • setMaxSenderRetries

      public void setMaxSenderRetries(int maxSenderRetries)
    • isAddMdcAsHeaders

      public boolean isAddMdcAsHeaders()
    • setAddMdcAsHeaders

      public void setAddMdcAsHeaders(boolean addMdcAsHeaders)
    • isDurable

      public boolean isDurable()
    • setDurable

      public void setDurable(boolean durable)
    • getDeliveryMode

      public String getDeliveryMode()
    • setDeliveryMode

      public void setDeliveryMode(String deliveryMode)
    • isAutoDelete

      public boolean isAutoDelete()
    • setAutoDelete

      public void setAutoDelete(boolean autoDelete)
    • isGenerateId

      public boolean isGenerateId()
    • setGenerateId

      public void setGenerateId(boolean generateId)
    • getCharset

      public String getCharset()
    • setCharset

      public void setCharset(String charset)
    • setLayout

      public void setLayout(ch.qos.logback.core.Layout<ch.qos.logback.classic.spi.ILoggingEvent> layout)
    • getEncoder

      public ch.qos.logback.core.encoder.Encoder<ch.qos.logback.classic.spi.ILoggingEvent> getEncoder()
    • setEncoder

      public void setEncoder(ch.qos.logback.core.encoder.Encoder<ch.qos.logback.classic.spi.ILoggingEvent> encoder)
    • setAbbreviation

      public void setAbbreviation(int len)
    • getQueuedEventCount

      public int getQueuedEventCount()
      Return the number of events waiting to be sent.
      Returns:
      the number of events waiting to be sent.
    • setConnectionName

      public void setConnectionName(String connectionName)
      Set a name for the connection which will appear on the RabbitMQ Admin UI.
      Parameters:
      connectionName - the connection name.
      Since:
      2.1.1
    • setClientConnectionProperties

      public void setClientConnectionProperties(String clientConnectionProperties)
      Set additional client connection properties to be added to the rabbit connection, with the form key:value[,key:value]....
      Parameters:
      clientConnectionProperties - the properties.
      Since:
      1.5.6
    • isIncludeCallerData

      public boolean isIncludeCallerData()
    • setIncludeCallerData

      public void setIncludeCallerData(boolean includeCallerData)
      If true, the caller data will be available in the target AMQP message. By default no caller data is sent to the RabbitMQ.
      Parameters:
      includeCallerData - include or on caller data
      Since:
      1.7.1
      See Also:
      • ILoggingEvent.getCallerData()
    • start

      public void start()
      Specified by:
      start in interface ch.qos.logback.core.spi.LifeCycle
      Overrides:
      start in class ch.qos.logback.core.AppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
    • createRabbitConnectionFactory

      protected com.rabbitmq.client.ConnectionFactory createRabbitConnectionFactory()
      Create the ConnectionFactory.
      Returns:
      a ConnectionFactory.
    • configureRabbitConnectionFactory

      protected void configureRabbitConnectionFactory(RabbitConnectionFactoryBean factoryBean)
      Configure the RabbitConnectionFactoryBean. Sub-classes may override to customize the configuration of the bean.
      Parameters:
      factoryBean - the RabbitConnectionFactoryBean.
    • updateConnectionClientProperties

      protected void updateConnectionClientProperties(Map<String,Object> clientProperties)
      Subclasses can override this method to add properties to the connection client properties.
      Parameters:
      clientProperties - the client properties.
      Since:
      1.5.6
    • createEventQueue

      protected BlockingQueue<AmqpAppender.Event> createEventQueue()
      Subclasses can override this method to inject a custom queue implementation.
      Returns:
      the queue to use for queueing logging events before processing them.
      Since:
      2.0.1
    • stop

      public void stop()
      Specified by:
      stop in interface ch.qos.logback.core.spi.LifeCycle
      Overrides:
      stop in class ch.qos.logback.core.AppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
    • append

      protected void append(ch.qos.logback.classic.spi.ILoggingEvent event)
      Specified by:
      append in class ch.qos.logback.core.AppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
    • setUpExchangeDeclaration

      protected void setUpExchangeDeclaration()
    • prepareMessageProperties

      protected MessageProperties prepareMessageProperties(AmqpAppender.Event event)
    • postProcessMessageBeforeSend

      protected Message postProcessMessageBeforeSend(Message message, AmqpAppender.Event event)
      Subclasses may modify the final message before sending.
      Parameters:
      message - The message.
      event - The event.
      Returns:
      The modified message.
      Since:
      1.4