[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [equinox-dev] Using Log4J in Equinox framework
|
I think the simplest way you want is to change a log4j Jar file to a
log4j bundle. Just create a new bundle project, put log4j.jar in the
bundle directory, add log4j.jar to the project build path, export all
the packages in log4j.jar,(through Export-Package in bundle's
MANIFEST.MF), add log4j to the bundle class path (through
Bundle-Classpath in bundle's MANIFEST.MF). And then you get a log4j
bundle which can run on Equinox.
You may also use a prebuild bundle from springsource's
bundle-repository:
http://www.springsource.com/repository/app/search?query=log4j
You want to use log4j APIs, just import log4j package in other bundle
(through Import-Package in bundle's MANIFEST.MF) and use it directly.
But in this way, loading of the configuration file log4j.properties is
a problem. log4j.properties can locate in the jar bundle or use a
argument to figure it out.
To work around this, create a new fragment bundle (ex.
foo.bar.logging.config), which only contains your log4j.properties file.
You need to add the following line to the bundle's manifest:
Fragment-Host: com.springsource.org.apache.log4j.
This makes sure that the log4j.properties file is visible from within
the log4j bundle's classloader without "patching" the log4j-bundle's
manifest.
In contrast to the equinox buddy-classloading, this is part of the OSGi
standard, and therefore will also work in other OSGi frameworks.
Cheers,
Martin Below