[ https://issues.apache.org/jira/browse/LOG4J2-3665?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17910090#comment-17910090 ]
Jeff Thomas commented on LOG4J2-3665: ------------------------------------- Closing old issues created by me in old issue tracker. If this issue comes up for me again, I will create a new issue in the Github issue trracker. Thanks :) > Dynamically created loggers do not respect "Named Hierarchy" > ------------------------------------------------------------ > > Key: LOG4J2-3665 > URL: https://issues.apache.org/jira/browse/LOG4J2-3665 > Project: Log4j 2 > Issue Type: Bug > Components: Core > Affects Versions: 2.20.0 > Environment: Windows > Java 17 (Temurin) > Log4j 2.20.0 > Reporter: Jeff Thomas > Priority: Major > > I hope I am interpreting this correctly... :( > I am getting a non-configured logger at runtime via the API. > {code:java} > LogManager.getLogger("foobar"){code} > This logger doesn't exist on the first call and gets dynamically created in > the context with its parent as the root logger. From this point on I can set > the level and it is persisted in the context. > So then I get another unconfigured logger: > {code:java} > LogManager.getLogger("foobar.a"){code} > This creates another dynamic logger but if I check its parent, the parent is > not the "foobar" logger I created first, but again the root logger. > According to the documentation > ([https://logging.apache.org/log4j/2.x/manual/architecture.html#logger-hierarchy),] > > {panel:title=Named Hierarchy} > A LoggerConfig is said to be an _ancestor_ of another LoggerConfig if its > name followed by a dot is a prefix of the _descendant_ logger name. A > LoggerConfig is said to be a _parent_ of a _child_ LoggerConfig if there are > no ancestors between itself and the descendant LoggerConfig. > {panel} > So it doesn't seem to be adhering to this "Named Hierarchy" rule. -- This message was sent by Atlassian Jira (v8.20.10#820010)