[ 
https://issues.apache.org/jira/browse/KARAF-5877?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16586607#comment-16586607
 ] 

ASF GitHub Bot commented on KARAF-5877:
---------------------------------------

bakejeyner opened a new pull request #599: KARAF-5877 log4j2 appending error 
when using log4j2 XML configuration
URL: https://github.com/apache/karaf/pull/599
 
 
   See [this JIRA ticket|https://issues.apache.org/jira/browse/KARAF-5877] for 
more background information.
   
   In short, `LogServiceLog4j2XmlImpl` will throw an `org.w3c.dom.DOMException: 
NOT_FOUND_ERR` when the corresponding `log4j2` configuration file has an 
element with children as the last element in the `<Loggers>` element. This 
causes the `log:tail` command to display the logs and error out immediately.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> log4j2 appending error when using log4j2 XML configuration
> ----------------------------------------------------------
>
>                 Key: KARAF-5877
>                 URL: https://issues.apache.org/jira/browse/KARAF-5877
>             Project: Karaf
>          Issue Type: Bug
>          Components: karaf-logging
>    Affects Versions: 4.2.0
>            Reporter: Jacob Beyner
>            Priority: Trivial
>             Fix For: 4.2.0
>
>
> {{LogServiceLog4j2XmlImpl}} will throw an {{org.w3c.dom.DOMException: 
> NOT_FOUND_ERR}} when the corresponding log4j2 configuration file has an 
> element with children as the last element in the {{<Loggers>}} element. This 
> causes the {{log:tail}} command to display the logs and error out immediately.
> The reason for this is the {{LogServiceLog4j2XmlImpl.insertIndented}} method. 
> It will eventually execute [this 
> line|https://github.com/apache/karaf/blob/master/log/src/main/java/org/apache/karaf/log/core/internal/LogServiceLog4j2XmlImpl.java#L159],
>  responsible for throwing the error.
> This is because the {{loggers}} object is a flat collection of the 
> {{Loggers}} element's children, and the {{insertAfter}} Node *can* be a 
> nested child instead of a first level child. Then, when 
> {{loggers.insertBefore(node, insertAfter.getNextSibling())}} is called, and 
> {{insertAfter}} is not a first level child of the {{Loggers}} element, the 
> exception is thrown. [This is becuase the {{Node.insertBefore}} method 
> requires the second argument to be a direct child of the node calling the 
> method|https://docs.oracle.com/javase/7/docs/api/org/w3c/dom/Node.html#insertBefore(org.w3c.dom.Node,%20org.w3c.dom.Node)].



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to