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

The log:get and log:set commands should support etc/log4j2.xml configuration

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 4.1.2
    • 4.2.0.M1
    • karaf
    • None

    Description

      Steps to reproduce:
      1. Replace contents of etc/org.ops4j.pax.logging.cfg with

      org.ops4j.pax.logging.log4j2.config.file=${karaf.etc}/log4j2.xml
      

      2. Add an etc/log4j2.xml configuration file with a configuration like

      <?xml version="1.0" encoding="UTF-8"?>
      <Configuration status="info">
          <Appenders>
              <PaxOsgi name="paxosgi" filter="VmLogAppender"/>
          </Appenders>
          <Loggers>
              <Root level="info">
                  <AppenderRef ref="paxosgi"/>
              </Root>
          </Loggers>
      </Configuration>
      

      3. Start up Karaf.

      Notice that log:set and log:get fail with

      2017-09-07 18:28:39,352 | ERROR | nsole user karaf | ShellUtil                        | 42 - org.apache.karaf.shell.core - 4.1.2 | Exception caught while executing command
      java.lang.IllegalStateException: Unrecognized configuration
      	at org.apache.karaf.log.core.internal.LogServiceImpl.getDelegate(LogServiceImpl.java:55) [36:org.apache.karaf.log.core:4.1.2]
      	at org.apache.karaf.log.core.internal.LogServiceImpl.setLevel(LogServiceImpl.java:98) [36:org.apache.karaf.log.core:4.1.2]
      	at org.apache.karaf.log.command.SetLogLevel.execute(SetLogLevel.java:48) [36:org.apache.karaf.log.core:4.1.2]
      	at org.apache.karaf.shell.impl.action.command.ActionCommand.execute(ActionCommand.java:84) [42:org.apache.karaf.shell.core:4.1.2]
      	at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:68) [42:org.apache.karaf.shell.core:4.1.2]
      	at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:86) [42:org.apache.karaf.shell.core:4.1.2]
      	at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:571) [42:org.apache.karaf.shell.core:4.1.2]
      	at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:497) [42:org.apache.karaf.shell.core:4.1.2]
      	at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:386) [42:org.apache.karaf.shell.core:4.1.2]
      	at org.apache.felix.gogo.runtime.Pipe.doCall(Pipe.java:417) [42:org.apache.karaf.shell.core:4.1.2]
      	at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:229) [42:org.apache.karaf.shell.core:4.1.2]
      	at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:59) [42:org.apache.karaf.shell.core:4.1.2]
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:?]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:?]
      	at java.lang.Thread.run(Thread.java:745) [?:?]
      

      log:set and log:get should behave the same when using the log4j2.xml configuration as when using the org.ops4j.pax.logging.cfg configuration.

      Attachments

        Issue Links

          Activity

            People

              gnodet Guillaume Nodet
              emily.berk Emily Berk
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: