Anthony Baldocchi created LOG4J2-467:
----------------------------------------
Summary: Thread name caching in async logger incompatible with use
of Thread.setName()
Key: LOG4J2-467
URL: https://issues.apache.org/jira/browse/LOG4J2-467
Project: Log4j 2
Issue Type: Bug
Components: Core
Affects Versions: 2.0-beta9
Environment: Debian Squeeze amd64
OpenJDK 7u25
Reporter: Anthony Baldocchi
AsyncLogger caches a thread's name in a thread-local info variable. I make use
of a thread pool where the submitted Runnables call Thread.setName() at the
beginning of their task and the thread name is included in the log message.
For an example of this behavior, see
org.jboss.netty.util.ThreadRenamingRunnable in Netty 3.x. With the cached
thread name, the log messages will contain whatever name the thread had when it
logged for the first time and so long as the thread doesn't terminate (such as
in a core pool thread), all log messages involving this thread will be
erroneous. If Thread.getName has a significant performance impact for async
logging, I would be satisfied if this behavior were configurable, perhaps on a
per-logger basis, so that the penalty only needs to be taken by users who make
use of Thread.setName()
--
This message was sent by Atlassian JIRA
(v6.1.4#6159)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]