logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Gregory <garydgreg...@gmail.com>
Subject Re: R: Log4j 2.x AsyncLogger
Date Thu, 19 Mar 2015 15:30:11 GMT
It would be best if you could use 2.2 to make debugging easier, especially
if we need eventually need to look at stack traces or changing the code.

TY,
Gary

On Thu, Mar 19, 2015 at 2:41 AM, Giovanni De Martino <
giovanni.de.martino@gmail.com> wrote:

> Ok Remko,
> as soon as it will happen... I was not able to reproduce the issue in a too
> little pre-production environment.
> in the meanwhile:
>
> 1) I make a mistake in the previous mail, I'm using the 2.0.2 version, not
> 2.1.
> 2) If in the meanwhile you have any other suggestion to test in order to
> obtain my objective of prevent logging functionalities can hang
> application...
>
>
> Regards, Giovanni
>
> On Thu, Mar 19, 2015 at 9:24 AM, Remko Popma <remko.popma@gmail.com>
> wrote:
>
> > Can you use jstack to get a list of the threads when your app hangs? I
> > don't see why your idea of combining async loggers with an async appender
> > with blocking=false would not work.
> >
> > Sent from my iPhone
> >
> > > On 2015/03/19, at 16:50, Giovanni De Martino <
> > giovanni.de.martino@gmail.com> wrote:
> > >
> > > Hi guys and thank you very much for the precious help.
> > > What I'm trying to obtain is a logging configuration that prevent my
> > > intensive traffic web application to hang for any kind of problem on
> the
> > > log database I use (mongoDB).
> > > currently the storage on which mongoDb is running is not so reliable,
> so
> > > our insert of log entries may take seconds (we write several hundreds
> of
> > > log entries per second).
> > > I'd like to loose log entries but do not stop the service to my
> customer,
> > > that is the web application.
> > >
> > > Below is how my log4j.xml looks like.
> > > I use log4j 2.1 and all my Loggers are asyncronous with a ringbuffer of
> > > around 130.000 Entries.
> > > Then, the asyncronous Logger refers to an asyncronous NoSQL Appender
> for
> > > MongoDB, with a default buffer of 128 entries and the blocking
> parameter
> > > set to "false".
> > > When troubles on MongoDB storage happen and last for some hours, I was
> > > expecting the buffer become full for high write operation delay and
> then
> > we
> > > start discard logging (blocking="false") without blocking the
> > application.
> > > Instead what I'm seeing is that after some hour my application hangs
> and
> > > does not respond anymore.
> > > Please, can you suggest me a better configuration in order to avoid
> this
> > > kind of issue.
> > > Of course I'm trying to solve the storage issues, but I need in any
> case
> > to
> > > cut dependencies of my core web functionalities from log writing.
> > >
> > > Again, many many thanks in advance for your precious help.
> > > Regards, Giovanni
> > >
> > > <?xml version="1.0" encoding="UTF-8"?>
> > > <Configuration status="INFO" packages="it.xxx.yyy.logger.appender">
> > >  <Appenders>
> > >    <NoSqlCustom name="operationAppender">
> > >      <MongoDb collectionName="log"
> > > factoryClassName="it.xxx.yyy.logger.db.DBConnection"
> > >               factoryMethodName="operationConnection"
> > > writeConcernConstant="UNACKNOWLEDGED" />
> > >    </NoSqlCustom>
> > >    <NoSqlCustom name="transactionAppender">
> > >      <MongoDb collectionName="log"
> > > factoryClassName="it.xxx.yyy.logger.db.DBConnection"
> > >               factoryMethodName="transactionConnection"
> > > writeConcernConstant="UNACKNOWLEDGED" />
> > >    </NoSqlCustom>
> > > <Console name="CONSOLE" target="SYSTEM_OUT">
> > >    <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} -
> > > %msg%n" />
> > > </Console>
> > >    <Async name="dam-transaction-async" blocking="false">
> > > <AppenderRef ref="transactionAppender" />
> > > </Async>
> > > <Async name="dam-operation-async" blocking="false">
> > > <AppenderRef ref="operationAppender" />
> > > </Async>
> > >  </Appenders>
> > >  <Loggers>
> > >    <Logger name="opLogger" level="DEBUG" additivity="false">
> > >      <AppenderRef ref="dam-operation-async"/>
> > >    </Logger>
> > >    <Logger name="tranLogger" level="INFO" additivity="false">
> > >      <AppenderRef ref="dam-transaction-async"/>
> > >    </Logger>
> > >    <Root level="DEBUG">
> > >      <AppenderRef ref="CONSOLE"/>
> > >    </Root>
> > >  </Loggers>
> > > </Configuration>
> > >
> > >
> > >
> > >> On Thu, Mar 19, 2015 at 5:25 AM, Remko Popma <remko.popma@gmail.com>
> > wrote:
> > >>
> > >> Async Appender uses a different mechanism than Async Loggers (and a
> > >> different queue, separate from the AsyncLogger ringbuffer).
> > >>
> > >> With AsyncAppender it is possible to control the blocking behaviour
> > with a
> > >> config parameter. In contrast, Async Loggers always block if the
> > ringbuffer
> > >> is full.
> > >>
> > >> Best regards,
> > >>
> > >> Remko
> > >>
> > >> Sent from my iPhone
> > >>
> > >>>> On 2015/03/19, at 9:53, Giovanni De Martino <
> > >>> giovanni.de.martino@gmail.com> wrote:
> > >>>
> > >>> Many thanks Remko.
> > >>> Just another question:
> > >>> If the logger is connected to an Async Appender with the blocking
> > >> parameter set to "false", how is possible that the ringbuffer become
> > full?
> > >>>
> > >>>
> > >>> ----- Messaggio originale -----
> > >>> Da: "Remko Popma" <remko.popma@gmail.com>
> > >>> Inviato: ‎19/‎03/‎2015 01:01
> > >>> A: "Log4J Users List" <log4j-user@logging.apache.org>
> > >>> Oggetto: Re: Log4j 2.x AsyncLogger
> > >>>
> > >>> When the ringbuffer is full, calls to the logger become blocking
> calls.
> > >> There is no mechanism to discard log events.
> > >>>
> > >>> Best regards,
> > >>> Remko
> > >>>
> > >>> Sent from my iPhone
> > >>>
> > >>>> On 2015/03/19, at 6:40, Giovanni De Martino <
> > >> giovanni.de.martino@gmail.com> wrote:
> > >>>>
> > >>>> Hi all,
> > >>>> I'm currently using Log4j 2.1 in a production environment.
> > >>>> I'm using all Async Logger with a RingBuffer of around 130.000
> entries
> > >> and
> > >>>> then an AsyncAppender towards MongoDB.
> > >>>> I'd like to kindle ask you following question:
> > >>>> what happen is the RingBuffer of the AsynLogger (not the Async
> > Appender)
> > >>>> become full?
> > >>>> It is a blocking buffer or old log entries not even passed to the
> > >> appender
> > >>>> are discarded and new ones overwrite then into the ring?
> > >>>>
> > >>>> Many thansk, giovanni
> > >>>>
> > >>>>
> > >>>> --
> > >>>> Giovanni De Martino
> > >>>> giovanni.de.martino@gmail.com
> > >>>
> > >>> ---------------------------------------------------------------------
> > >>> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> > >>> For additional commands, e-mail: log4j-user-help@logging.apache.org
> > >>
> > >> ---------------------------------------------------------------------
> > >> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> > >> For additional commands, e-mail: log4j-user-help@logging.apache.org
> > >
> > >
> > > --
> > > Giovanni De Martino (AKA Harry Potter)
> > > giovanni.de.martino@gmail.com
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> > For additional commands, e-mail: log4j-user-help@logging.apache.org
> >
> >
>
>
> --
> Giovanni De Martino (AKA Harry Potter)
> giovanni.de.martino@gmail.com
>



-- 
E-Mail: garydgregory@gmail.com | ggregory@apache.org
Java Persistence with Hibernate, Second Edition
<http://www.manning.com/bauer3/>
JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
Spring Batch in Action <http://www.manning.com/templier/>
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message