[jboss-jira] [JBoss JIRA] (LOGMGR-95) Log4j Logger.getParent() inconsistent
James Perkins (JIRA)
issues at jboss.org
Tue Feb 25 12:31:47 EST 2014
[ https://issues.jboss.org/browse/LOGMGR-95?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12948013#comment-12948013 ]
James Perkins commented on LOGMGR-95:
-------------------------------------
It looks like log4j has a {{ProvisionNode}} that is used as a place holder if a logger doesn't already exist as a parent. When getting a logger that was previously a {{ProvisionNode}} then it updates children and parents so the logger is configured. This does look like a behavioral difference to me.
> Log4j Logger.getParent() inconsistent
> -------------------------------------
>
> Key: LOGMGR-95
> URL: https://issues.jboss.org/browse/LOGMGR-95
> Project: JBoss Log Manager
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Reporter: James Livingston
> Assignee: David Lloyd
>
> Log4j Loggers have a getParent() method, whose return value is set up by JBossLogManagerFacade.updateParents(). The method locates the closest parent node which has an existing Log4J logger created *at the time*. This results in the parent being different depending on the order Log4j loggers are used in.
> Consider:
> Logger.getLogger("a");
> Logger.getLogger("a.b.c");
> Logger.getLogger("a.b");
> When the second line causes updateParents() to be called, LoggerNode.getOrCreate() has already created the intermediate "a.b" node. That does not yet have a Log4j Logger created, so the Logger for "a" is returned. Original log4j would have returned "a.b" due to it using the parent structure in the implementation.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list