[ https://issues.apache.org/jira/browse/LOG4J2-1297?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15159126#comment-15159126 ]
Ralph Goers commented on LOG4J2-1297: ------------------------------------- Why do loggers all need to be asynchronous? It isn't obvious to me why synchronous loggers would have to create objects. Why can't there be a Properties section? I think the documentation for this should also call out what the impact is of using the non-gc-free components. For example, using a PatternLayout that has a lookup, using synchronous loggers or using properties. > Document "gc-free" configuration and performance > ------------------------------------------------ > > Key: LOG4J2-1297 > URL: https://issues.apache.org/jira/browse/LOG4J2-1297 > Project: Log4j 2 > Issue Type: New Feature > Components: Documentation > Affects Versions: 2.5 > Reporter: Remko Popma > Assignee: Remko Popma > > Update the site with a description of which configurations are GC-free (i.e., > that don't create temporary objects in steady running state). > Currently that means > * Loggers are all asynchronous (Log4jContextSelector is set to > org.apache.logging.log4j.core.async.AsyncLoggerContextSelector) > * the configuration does not contain a <Properties> section > * the "steady-state" appenders are either RandomAccessFile or > RollingRandomAccessFile Appenders (logging to any other appender will cause > temporary objects to be created - including ConsoleAppender) > * the Layout is a PatternLayout that uses one of the pre-defined date > formats, does not have any regular expression replacements, and does not have > lookups (TODO: may need to restrict this further) > * in user code, when logging a parameterized message, the number of > parameters is no more than ... (TBD pending discussion in LOG4J2-1278) > * in user code, when logging a parameterized message, parameters of primitive > type are boxed in a reused StringBuilder (Log4j provides a utility to make > this relatively painless) > Furthermore, we need to explain that some of this functionality depends on > ThreadLocals and so is disabled by default in web applications to prevent > memory leaks. The page should also explain how to manually switch off the use > of ThreadLocals. > Finally, the page should show a performance test comparison similar to the > [performance > section|http://logging.apache.org/log4j/2.x/manual/async.html#Performance] on > the Async Loggers page. I'm thinking a comparison between Logback, Log4j-1, > Log4j-2.0, Log4j-2.6 "classic" and Log4j-2.6 "gc-free" would be ideal. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org