2011-03-01 22 views
9

Después de muchas pruebas, concluí que el Log4j no funciona bajo OSGI.Log4j bajo OSGI (Eclipse RCP)

No uso Log4j directamente, pero necesito complementos de terceros para iniciar sesión con él.

Hice un proyecto simple de JAVA y todo funciona bien, pero bajo el desarrollo de PLUGIN no funciona nada.

Tengo log4j jar en mi Classpath e incluso intenté un repositorio de Spring OSGI compatible con Log4j y lo incluí en Dependencias. Nada funciona.

He intentado esto algún enfoque sin éxito: http://swik.net/Eclipse/Planet+Eclipse/Raja+Kannappan:+Eclipse+RCP+-+Converting+Dependencies+to+OSGi+Bundles/drqpf

y no podía entender completamente este: http://www.eclipsezone.com/eclipse/forums/t99588.html

Puede alguien me punto en la dirección correcta?

Gracias.

+0

ACTUALIZACIÓN! He encontrado una alternativa: EDITAR una versión compatible con OSGI de log4j (obtenerla del repositorio de SPRING) con winrar, pegar los archivos de propiedades de log4j en la raíz del JAR. Importe el paquete en su plugin DEPENDENCIAS, et voilá! Cada enfoque tiene sus ventajas. (No olvide el CONSEJO IMPORTANTE de Eugener, que hace que todo funcione: Todos los paquetes que usan log4j deben tener org.apache.log4j en su atributo Import-Package) – marcolopes

Respuesta

14

Simplemente tiene que crear el paquete log4j fragment con el archivo log4j.properties dentro de.

ACTUALIZACIÓN: Algunas cosas a buscar:

  • Nombre de cabecera debe ser: Fragment-Host: log4j.
  • log4j.properties deben estar en la carpeta src .
  • Todos los paquetes que utilizan log4j deben tener en org.apache.log4j su Import-Package atributo
+0

Lo hizo. Fragmento con log4j jar en las propiedades classpath y log4j en la raíz del fragmento. Fragmento importado al producto principal de la aplicación. Sin éxito ... – marcolopes

+0

ver la actualización ... –

+1

El complemento Datanucleus no tiene org.apache.log4j en el "paquete de importación" ... tampoco puedo configurar el "host Fragmento" en "log4j" porque Necesito especificar el "HOST-Plugin" (¡y no puedo cambiar el nombre de mi proyecto principal!) – marcolopes

1

para iniciar sesión en OSGi, usted debe echar un vistazo a OSGi servicio de registro. Aquí está el artículo que explica bastante bien una buena aproximación: http://blog.kornr.net/index.php/2008/12/18/osgi-logging-putting-it-all-together

También puede echar un vistazo a Pax-registro: http://wiki.ops4j.org/display/paxlogging/Pax+Logging

+0

El propósito no es crear un servicio de registro, sino un complemento de un tercero para iniciar sesión ... – marcolopes

+0

Asegúrese de tener el paquete log4j ACTIVE en su plataforma OSGi. (Tenerlo en el classpath no es suficiente) Entonces puedes usar el enfoque de fragmento para el archivo de propiedades si lo deseas. – RaduK

Cuestiones relacionadas