Uploaded image for project: 'Karaf'
  1. Karaf
  2. KARAF-5877

log4j2 appending error when using log4j2 XML configuration

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Trivial
    • Resolution: Cannot Reproduce
    • 4.2.0
    • 4.2.1
    • karaf
    • None

    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

          Activity

            People

              ffang Freeman Yue Fang
              BakeJeyner Jacob Beyner
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: