You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-user@logging.apache.org by Mohit Anchlia <mo...@gmail.com> on 2014/04/02 19:00:57 UTC
Non blocking JMS appender
I am trying to configure log4j such that the jms appender is non blocking.
Does this configuration make it non blocking?
<appender name="async" class="org.apache.log4j.AsyncAppender">
<param name="BufferSize" value="4096" />
<param name="blocking" value="false"/>
</appender>
<appender name="search-indexer-async-jms"
class="org.apache.log4j.net.JMSAppender">
<param name="InitialContextFactoryName"
value="org.apache.activemq.jndi.ActiveMQInitialContextFactory" />
<param name="ProviderURL" value="tcp://localhost:61616"/>
<param name="TopicBindingName" value="indexTopicEndpoint"/>
<param name="TopicConnectionFactoryBindingName"
value="ConnectionFactory"/>
<appender-ref ref="async" />
</appender>
Re: Non blocking JMS appender
Posted by Remko Popma <re...@gmail.com>.
Your main goal is probably to have the IO (the jms messaging) in a separate thread from your application. An async appender achieves that.
However AsyncAppender uses a normal java queue to pass log events from one thread to another. This is a blocking data structure and can become a source of contention if many application threads are logging concurrently.
Log4j-2.0 offers an alternative with async loggers that you may be interested in: http://logging.apache.org/log4j/2.x/manual/async.html
Remko
Sent from my iPhone
> On 2014/04/03, at 8:20, Matt Sicker <bo...@gmail.com> wrote:
>
> It would be in log4j2! As far as I know, that is.
>
>
>> On 2 April 2014 12:00, Mohit Anchlia <mo...@gmail.com> wrote:
>>
>> I am trying to configure log4j such that the jms appender is non blocking.
>> Does this configuration make it non blocking?
>>
>> <appender name="async" class="org.apache.log4j.AsyncAppender">
>> <param name="BufferSize" value="4096" />
>> <param name="blocking" value="false"/>
>> </appender>
>>
>> <appender name="search-indexer-async-jms"
>> class="org.apache.log4j.net.JMSAppender">
>> <param name="InitialContextFactoryName"
>> value="org.apache.activemq.jndi.ActiveMQInitialContextFactory" />
>> <param name="ProviderURL" value="tcp://localhost:61616"/>
>> <param name="TopicBindingName" value="indexTopicEndpoint"/>
>> <param name="TopicConnectionFactoryBindingName"
>> value="ConnectionFactory"/>
>>
>> <appender-ref ref="async" />
>> </appender>
>
>
>
> --
> Matt Sicker <bo...@gmail.com>
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org
Re: Non blocking JMS appender
Posted by Matt Sicker <bo...@gmail.com>.
It would be in log4j2! As far as I know, that is.
On 2 April 2014 12:00, Mohit Anchlia <mo...@gmail.com> wrote:
> I am trying to configure log4j such that the jms appender is non blocking.
> Does this configuration make it non blocking?
>
> <appender name="async" class="org.apache.log4j.AsyncAppender">
> <param name="BufferSize" value="4096" />
> <param name="blocking" value="false"/>
> </appender>
>
> <appender name="search-indexer-async-jms"
> class="org.apache.log4j.net.JMSAppender">
> <param name="InitialContextFactoryName"
> value="org.apache.activemq.jndi.ActiveMQInitialContextFactory" />
> <param name="ProviderURL" value="tcp://localhost:61616"/>
> <param name="TopicBindingName" value="indexTopicEndpoint"/>
> <param name="TopicConnectionFactoryBindingName"
> value="ConnectionFactory"/>
>
> <appender-ref ref="async" />
> </appender>
>
--
Matt Sicker <bo...@gmail.com>