<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div dir="ltr"><meta http-equiv="content-type" content="text/html; charset=utf-8">Hi David,<div><br></div><div>As documented in <a href="http://logback.qos.ch/manual/appenders.html">http://logback.qos.ch/manual/appenders.html</a></div><div><br></div><div>The queue in async appender is a blocking queue. So if it fills up, then the application code will block until there is space in the queue. </div><div><br></div><div>Burg that blocking will only occur for error messages as mentioned in the above linked page;</div><div><br></div><div>> <span style="-webkit-text-size-adjust: auto; font-family: Verdana, Arial, SunSans-Regular, sans-serif; font-size: medium; background-color: rgb(255, 255, 255);">Note that by default,</span><code style="-webkit-text-size-adjust: auto;">AsyncAppender</code><span style="-webkit-text-size-adjust: auto; font-family: Verdana, Arial, SunSans-Regular, sans-serif; font-size: medium; background-color: rgb(255, 255, 255);"> will drop events of level TRACE, DEBUG and INFO if its queue is 80% full. This strategy has an amazingly favorable effect on performance at the cost of event loss.</span></div><div><br>So this is a reason to use a large queue size, if you want to avoid loosing info messages under high load. </div><div><br></div><div>As for ‘ includeCallerData’, this including information about the caller of the logger, like line number and file. This takes us more memory, and not all for matters use it. <br><br><div dir="ltr">David</div><div dir="ltr"><br><blockquote type="cite">On 22 May 2021, at 04:21, KARR, DAVID <dk068x@att.com> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><span>I'm investigating what the consequences will be of changing some of our high volume logging calls to use an AsyncAppender instead of a synchronous appender.  Our services run in a k8s container, so they are ultimately writing to stdout, although other processes are aggregating that log output to Splunk or ELK.</span><br><span></span><br><span>I understand the basic idea of what the AsyncAppender will do, but I have some questions about the impact of some property settings which I cannot find details about in the documentation.</span><br><span></span><br><span>I'm mostly interested in the "queueSize" and "includeCallerData" properties. </span><br><span></span><br><span>Concerning "queueSize", I know it is the limit to the size of the input queue, but how exactly is that parameter utilized?  Is any memory allocated based on that queue size at startup, or is it simply the limit of a dynamically expanding list?  The default queue size is apparently 256.  A team in our organization is planning to set this to a very large number, like 100000.  Obviously, there would be considerable impact if the queue really reached that size, and I understand that.</span><br><span></span><br><span>Concerning "includeCallerData", I understand this even less.  How is this "caller data" used?  What does it really represent? What is the impact of this being included or not included?  I tried running tests with one service with the main high volume appender being set to use the sync appender, and then the async appender.  I didn't really notice any changes in the output.</span><br><span>_______________________________________________</span><br><span>logback-user mailing list</span><br><span>logback-user@qos.ch</span><br><span>http://mailman.qos.ch/mailman/listinfo/logback-user</span></div></blockquote></div></div></body></html>