SLF4J

=========

Adding to the pom

<dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.26</version>
        </dependency>

and using in java logger with     private static final Logger logger =
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass().getSimpleName());

works like charm in the bundle, thanks.


LOG4J

=========

Adding to the pom

<dependency>
            <groupId>org.ops4j.pax.logging</groupId>
<artifactId>pax-logging-log4j2</artifactId>
            <version>1.10.1</version>
</dependency>

<Import-Package>
    org.apache.logging.log4j*;version="[2,3)",

   *

</Import-Package>

is also working.

But i dont understand what information i get when i run in karaf the
command package:exports|grep -i log4j. Also, i dont understand what
[2,3) means?


But i have two working solutions with slf4j of log4j that work now.
Perfect, thanks.

Regards,

M.


Am 30.05.19 um 13:26 schrieb Jean-Baptiste Onofré:
Hi,

you should not embed log4j as private: you should import the log4j
packages provided by pax-logging.

However, the log4j2 packages versions is 2.8.2, not 2.11.0.

So, I recommend to use Import-Package with [2,3).

You can see the packages using package:exports|grep -i log4j command.

Regards
JB

On 30/05/2019 12:45, matthiaw wrote:
I want to use log4j2 in my osgi-bundle for karaf. When i add log4j into the
pom, compile it and load it into karaf, then the exception

Unresolved requirements: [[... [56](R 56.0)] osgi.wiring.package;
(&(osgi.wiring.package=*org.apache.logging.log4j*)(version>=2.11.0)(!(version>=3.0.0)))]

is thrown. This must be, because i not added something to
maven-bundle-plugin. Bot when i add there

<Private-Package>..., org.apache.logging.log4j*</Private-Package> or
<Private-Package>..., *</Private-Package>

i get the exception

Unresolved requirements: [[... [57](R 57.0)] osgi.wiring.package;
(osgi.wiring.package=*com.conversantmedia.util.concurrent*)]

Looking for the package gets me to adding

<dependency>
     <groupId>com.conversantmedia</groupId>
     <artifactId>disruptor</artifactId>
     <version>1.2.0</version>
</dependency>

to the pom. Now i get

Unresolved requirements: [[... [58](R 58.0)] osgi.wiring.package;
(osgi.wiring.package=*com.fasterxml.jackson.annotation*)]

Is it necessary that i add all depended libraries for log4j manually to the
pom to get a working bundle? Or is there a better way?

I am new to osgi and karaf. How can i add log4j accurate in a osgi-bundle,
so its log is shown in karaf log:display?

Regards,
Matthias




--
Sent from: http://karaf.922171.n3.nabble.com/Karaf-User-f930749.html

--
Matthias Wegner
Hauptstrasse 41a
79199 Kirchzarten
Tel.: 07661 9091000
Mobil: 0716 47893182

Reply via email to