You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by Jakub Herkel <jh...@gmail.com> on 2021/12/23 19:04:44 UTC
Log4j2 xml configuration with Karaf 4.3.5
I tried to setup log4j2 via xml configuration but when I tried
"display" command I could see this exception:
org.apache.karaf.shell.impl.console.osgi.LoggingCommandSessionListener/org.apache.karaf.shell.impl.console.osgi.LoggingCommandSessionListener
[DEBUG] Executing command: 'display'
org.apache.felix.configadmin/org.apache.felix.cm.impl.Log [DEBUG]
getConfiguration(pid=org.ops4j.pax.logging, location=null)
org.apache.felix.configadmin/org.apache.felix.cm.impl.Log [DEBUG]
Found cached configuration org.ops4j.pax.logging bound to ?
org.apache.felix.configadmin/org.apache.felix.cm.impl.Log [DEBUG]
getConfiguration(pid=org.ops4j.pax.logging, location=null)
org.apache.felix.configadmin/org.apache.felix.cm.impl.Log [DEBUG]
Found cached configuration org.ops4j.pax.logging bound to ?
org.apache.karaf.shell.impl.console.osgi.LoggingCommandSessionListener/org.apache.karaf.shell.impl.console.osgi.LoggingCommandSessionListener
[DEBUG] Command: 'display' failed: java.lang.RuntimeException: Unable
to set level for logger
org.apache.karaf.shell.support.ShellUtil/org.apache.karaf.shell.support.ShellUtil
[ERROR] Exception caught while executing command
java.lang.RuntimeException: Unable to set level for logger
at org.apache.karaf.log.core.internal.LogServiceLog4j2XmlImpl.setLevel(LogServiceLog4j2XmlImpl.java:139)
~[?:?]
at org.apache.karaf.log.core.internal.LogServiceImpl.setLevel(LogServiceImpl.java:106)
~[?:?]
at org.apache.karaf.log.command.DisplayLog.execute(DisplayLog.java:74)
~[?:?]
at org.apache.karaf.shell.impl.action.command.ActionCommand.execute(ActionCommand.java:84)
~[?:?]
at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:68)
~[?:?]
at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:86)
~[?:?]
at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:599) ~[?:?]
at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:526)
~[?:?]
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:415) ~[?:?]
at org.apache.felix.gogo.runtime.Pipe.doCall(Pipe.java:416) ~[?:?]
at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:229) ~[?:?]
at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:59) ~[?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
~[?:?]
at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: org.w3c.dom.DOMException: NOT_FOUND_ERR: An attempt is made
to reference a node in a context where it does not exist.
at com.sun.org.apache.xerces.internal.dom.ParentNode.internalInsertBefore(ParentNode.java:364)
~[?:?]
at com.sun.org.apache.xerces.internal.dom.ParentNode.insertBefore(ParentNode.java:286)
~[?:?]
at org.apache.karaf.log.core.internal.LogServiceLog4j2XmlImpl.insertIndented(LogServiceLog4j2XmlImpl.java:168)
~[?:?]
at org.apache.karaf.log.core.internal.LogServiceLog4j2XmlImpl.setLevel(LogServiceLog4j2XmlImpl.java:121)
~[?:?]
... 15 more
Error executing command: Unable to set level for logger
my org.ops4j.pax.logging.cfg contains:
org.ops4j.pax.logging.log4j2.config.file=${karaf.etc}/log4j2.xml
and log4j2.xml:
<Configuration id="builtin.rolling">
<Appenders>
<Console name="console">
<PatternLayout pattern="%logger/%class [%level] %message%n" />
</Console>
<RollingFile name="file" append="true">
<fileName>logs/service.log</fileName>
<filePattern>logs/service.log.%d{yyyy-MM}</filePattern>
<PatternLayout pattern="%logger/%class [%level] %mdc %message%n" />
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="my.logger" level="info" additivity="false">
<AppenderRef ref="file" />
</Logger>
<Root level="debug">
<AppenderRef ref="console" />
</Root>
</Loggers>
</Configuration>
My environment is Fedora Linux F35 and openjdk 17.0.1.
Could someone give me any hint what is wrong with this setup?
best regards
Jakub
Re: Log4j2 xml configuration with Karaf 4.3.5
Posted by Jakub Herkel <jh...@gmail.com>.
Hi,
Thanks for your help, now it works
best regards
Jakub
On Thu, Dec 23, 2021 at 8:06 PM JB Onofré <jb...@nanthrax.net> wrote:
>
> Hi
>
> That’s normal : log:* commands only work with default log4j properties style.
>
> Regards
> JB
>
> > Le 23 déc. 2021 à 20:05, Jakub Herkel <jh...@gmail.com> a écrit :
> >
> > I tried to setup log4j2 via xml configuration but when I tried
> > "display" command I could see this exception:
> > org.apache.karaf.shell.impl.console.osgi.LoggingCommandSessionListener/org.apache.karaf.shell.impl.console.osgi.LoggingCommandSessionListener
> > [DEBUG] Executing command: 'display'
> > org.apache.felix.configadmin/org.apache.felix.cm.impl.Log [DEBUG]
> > getConfiguration(pid=org.ops4j.pax.logging, location=null)
> > org.apache.felix.configadmin/org.apache.felix.cm.impl.Log [DEBUG]
> > Found cached configuration org.ops4j.pax.logging bound to ?
> > org.apache.felix.configadmin/org.apache.felix.cm.impl.Log [DEBUG]
> > getConfiguration(pid=org.ops4j.pax.logging, location=null)
> > org.apache.felix.configadmin/org.apache.felix.cm.impl.Log [DEBUG]
> > Found cached configuration org.ops4j.pax.logging bound to ?
> > org.apache.karaf.shell.impl.console.osgi.LoggingCommandSessionListener/org.apache.karaf.shell.impl.console.osgi.LoggingCommandSessionListener
> > [DEBUG] Command: 'display' failed: java.lang.RuntimeException: Unable
> > to set level for logger
> > org.apache.karaf.shell.support.ShellUtil/org.apache.karaf.shell.support.ShellUtil
> > [ERROR] Exception caught while executing command
> > java.lang.RuntimeException: Unable to set level for logger
> > at org.apache.karaf.log.core.internal.LogServiceLog4j2XmlImpl.setLevel(LogServiceLog4j2XmlImpl.java:139)
> > ~[?:?]
> > at org.apache.karaf.log.core.internal.LogServiceImpl.setLevel(LogServiceImpl.java:106)
> > ~[?:?]
> > at org.apache.karaf.log.command.DisplayLog.execute(DisplayLog.java:74)
> > ~[?:?]
> > at org.apache.karaf.shell.impl.action.command.ActionCommand.execute(ActionCommand.java:84)
> > ~[?:?]
> > at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:68)
> > ~[?:?]
> > at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:86)
> > ~[?:?]
> > at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:599) ~[?:?]
> > at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:526)
> > ~[?:?]
> > at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:415) ~[?:?]
> > at org.apache.felix.gogo.runtime.Pipe.doCall(Pipe.java:416) ~[?:?]
> > at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:229) ~[?:?]
> > at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:59) ~[?:?]
> > at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
> > at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
> > ~[?:?]
> > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
> > ~[?:?]
> > at java.lang.Thread.run(Thread.java:833) [?:?]
> > Caused by: org.w3c.dom.DOMException: NOT_FOUND_ERR: An attempt is made
> > to reference a node in a context where it does not exist.
> > at com.sun.org.apache.xerces.internal.dom.ParentNode.internalInsertBefore(ParentNode.java:364)
> > ~[?:?]
> > at com.sun.org.apache.xerces.internal.dom.ParentNode.insertBefore(ParentNode.java:286)
> > ~[?:?]
> > at org.apache.karaf.log.core.internal.LogServiceLog4j2XmlImpl.insertIndented(LogServiceLog4j2XmlImpl.java:168)
> > ~[?:?]
> > at org.apache.karaf.log.core.internal.LogServiceLog4j2XmlImpl.setLevel(LogServiceLog4j2XmlImpl.java:121)
> > ~[?:?]
> > ... 15 more
> > Error executing command: Unable to set level for logger
> >
> > my org.ops4j.pax.logging.cfg contains:
> > org.ops4j.pax.logging.log4j2.config.file=${karaf.etc}/log4j2.xml
> >
> > and log4j2.xml:
> > <Configuration id="builtin.rolling">
> > <Appenders>
> > <Console name="console">
> > <PatternLayout pattern="%logger/%class [%level] %message%n" />
> > </Console>
> > <RollingFile name="file" append="true">
> > <fileName>logs/service.log</fileName>
> > <filePattern>logs/service.log.%d{yyyy-MM}</filePattern>
> > <PatternLayout pattern="%logger/%class [%level] %mdc %message%n" />
> > <Policies>
> > <TimeBasedTriggeringPolicy />
> > </Policies>
> > </RollingFile>
> > </Appenders>
> >
> > <Loggers>
> > <Logger name="my.logger" level="info" additivity="false">
> > <AppenderRef ref="file" />
> > </Logger>
> > <Root level="debug">
> > <AppenderRef ref="console" />
> > </Root>
> > </Loggers>
> > </Configuration>
> >
> > My environment is Fedora Linux F35 and openjdk 17.0.1.
> >
> > Could someone give me any hint what is wrong with this setup?
> >
> > best regards
> >
> > Jakub
>
Re: Log4j2 xml configuration with Karaf 4.3.5
Posted by JB Onofré <jb...@nanthrax.net>.
Hi
That’s normal : log:* commands only work with default log4j properties style.
Regards
JB
> Le 23 déc. 2021 à 20:05, Jakub Herkel <jh...@gmail.com> a écrit :
>
> I tried to setup log4j2 via xml configuration but when I tried
> "display" command I could see this exception:
> org.apache.karaf.shell.impl.console.osgi.LoggingCommandSessionListener/org.apache.karaf.shell.impl.console.osgi.LoggingCommandSessionListener
> [DEBUG] Executing command: 'display'
> org.apache.felix.configadmin/org.apache.felix.cm.impl.Log [DEBUG]
> getConfiguration(pid=org.ops4j.pax.logging, location=null)
> org.apache.felix.configadmin/org.apache.felix.cm.impl.Log [DEBUG]
> Found cached configuration org.ops4j.pax.logging bound to ?
> org.apache.felix.configadmin/org.apache.felix.cm.impl.Log [DEBUG]
> getConfiguration(pid=org.ops4j.pax.logging, location=null)
> org.apache.felix.configadmin/org.apache.felix.cm.impl.Log [DEBUG]
> Found cached configuration org.ops4j.pax.logging bound to ?
> org.apache.karaf.shell.impl.console.osgi.LoggingCommandSessionListener/org.apache.karaf.shell.impl.console.osgi.LoggingCommandSessionListener
> [DEBUG] Command: 'display' failed: java.lang.RuntimeException: Unable
> to set level for logger
> org.apache.karaf.shell.support.ShellUtil/org.apache.karaf.shell.support.ShellUtil
> [ERROR] Exception caught while executing command
> java.lang.RuntimeException: Unable to set level for logger
> at org.apache.karaf.log.core.internal.LogServiceLog4j2XmlImpl.setLevel(LogServiceLog4j2XmlImpl.java:139)
> ~[?:?]
> at org.apache.karaf.log.core.internal.LogServiceImpl.setLevel(LogServiceImpl.java:106)
> ~[?:?]
> at org.apache.karaf.log.command.DisplayLog.execute(DisplayLog.java:74)
> ~[?:?]
> at org.apache.karaf.shell.impl.action.command.ActionCommand.execute(ActionCommand.java:84)
> ~[?:?]
> at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:68)
> ~[?:?]
> at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:86)
> ~[?:?]
> at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:599) ~[?:?]
> at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:526)
> ~[?:?]
> at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:415) ~[?:?]
> at org.apache.felix.gogo.runtime.Pipe.doCall(Pipe.java:416) ~[?:?]
> at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:229) ~[?:?]
> at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:59) ~[?:?]
> at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
> ~[?:?]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
> ~[?:?]
> at java.lang.Thread.run(Thread.java:833) [?:?]
> Caused by: org.w3c.dom.DOMException: NOT_FOUND_ERR: An attempt is made
> to reference a node in a context where it does not exist.
> at com.sun.org.apache.xerces.internal.dom.ParentNode.internalInsertBefore(ParentNode.java:364)
> ~[?:?]
> at com.sun.org.apache.xerces.internal.dom.ParentNode.insertBefore(ParentNode.java:286)
> ~[?:?]
> at org.apache.karaf.log.core.internal.LogServiceLog4j2XmlImpl.insertIndented(LogServiceLog4j2XmlImpl.java:168)
> ~[?:?]
> at org.apache.karaf.log.core.internal.LogServiceLog4j2XmlImpl.setLevel(LogServiceLog4j2XmlImpl.java:121)
> ~[?:?]
> ... 15 more
> Error executing command: Unable to set level for logger
>
> my org.ops4j.pax.logging.cfg contains:
> org.ops4j.pax.logging.log4j2.config.file=${karaf.etc}/log4j2.xml
>
> and log4j2.xml:
> <Configuration id="builtin.rolling">
> <Appenders>
> <Console name="console">
> <PatternLayout pattern="%logger/%class [%level] %message%n" />
> </Console>
> <RollingFile name="file" append="true">
> <fileName>logs/service.log</fileName>
> <filePattern>logs/service.log.%d{yyyy-MM}</filePattern>
> <PatternLayout pattern="%logger/%class [%level] %mdc %message%n" />
> <Policies>
> <TimeBasedTriggeringPolicy />
> </Policies>
> </RollingFile>
> </Appenders>
>
> <Loggers>
> <Logger name="my.logger" level="info" additivity="false">
> <AppenderRef ref="file" />
> </Logger>
> <Root level="debug">
> <AppenderRef ref="console" />
> </Root>
> </Loggers>
> </Configuration>
>
> My environment is Fedora Linux F35 and openjdk 17.0.1.
>
> Could someone give me any hint what is wrong with this setup?
>
> best regards
>
> Jakub