Description
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, 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.
Steps to Reproduce:
1. Complete the steps in section `Log4j v2 support` of the Karaf documentation.
2. Attempt to `log:tail` in the Karaf console.
Attachments
Issue Links
- links to