[logback-user] getting logback to scale on multitenant app

David Roussel nabble at diroussel.xsmail.com
Thu Dec 14 23:04:47 CET 2017

Hi Jamie,

It’s not clear how your “multi-tennent” approach affects the loading of logback.  I guess somehow you are creating new instances of logback?

Each instance of AsyncAppender is blocking, and thus requires one thread per per AsyncAppender. 


> On 14 Dec 2017, at 21:28, Jamie <jamie at stimulussoft.com> wrote:
> Hi
> I'd appreciate guidance on  how to get Logback to use less resources in our multitenant app. It seems every time we add a new tenant, log back creates a few more async appender threads. This affects the scalability of our software. In our app, each tenant has an audit and a debug log. Async apppender is being used to write to each log respectively. Our problem is that whenever a new tenant is added, many more threads get created. it seems a new  worker thread is assigned to each appender.  Is there a way to get Logback to rather use a shared thread pool?
> Stacks at 2017-12-14 10:33:57 PM (uptime 22m 24s)
> AsyncAppender-Worker-audit-template [WAITING] [DAEMON]
> sun.misc.Unsafe.park(boolean, long) Unsafe.java (native)
> java.util.concurrent.locks.LockSupport.park(Object) LockSupport.java:175
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await() AbstractQueuedSynchronizer.java:2039
> java.util.concurrent.ArrayBlockingQueue.take() ArrayBlockingQueue.java:403
> ch.qos.logback.core.AsyncAppenderBase$Worker.run() AsyncAppenderBase.java:289
> Thanks in advance
> Jamie
> _______________________________________________
> logback-user mailing list
> logback-user at qos.ch
> http://mailman.qos.ch/mailman/listinfo/logback-user

More information about the logback-user mailing list