PaxLogging inside PDE

PaxLogging inside PDE

How to configure pax logging (for Eclipse PDE users)

Working solution discovered in experiments.
Any comments will be appreciated.

Get Pax Logging

Get pax-logging-api and pax-logging-service bundles and put in your target platform.

Use Configuration Admin for setting up logging

Install Configuration Admin implementation

  • or from Knopflerfish

    • put org.knopflerfish.bundle.cm - cm_all-2.0.0.jar in your target platform dir

Install and configure propsloader

  • Get propsloader bundle and put in your target platform.

  • check (or set) your working dir for OSGi Framework Run configuration

  • In that directory create subdir configurations and nested factories and services

  • In services dir create file org.ops4j.pax.logging.properties with setting in Log4j properties format, for example:

    log4j.rootLogger=DEBUG, A1 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout #default layout: #log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%-30.30t] %-40.40c %x - %m%n log4j.logger.org.springframework.osgi=DEBUG log4j.logger.org.springframework=INFO log4j.logger.org.apache.wicket=INFO log4j.logger.org.mortbay=INFO log4j.logger.org.apache.wicket.util.thread=INFO log4j.logger.org.compass.core.lucene.engine.optimizer.ScheduledLuceneSearchEngineOptimizer=INFO log4j.logger.org.springframework.osgi.extender.internal.support.NamespaceManager=INFO log4j.logger.org.springframework.osgi.extender.internal.support.NamespacePlugins=INFO
  • set lowest (for example 1) start level for bundle:

    org.eclipse.equinox.cm

    and one higher (for example 2) start level for bundles:

    org.ops4j.pax.logging.* org.ops4j.pax.confman.propsloader

    to make sure that logging is correct set up, before other bundles will log.

  • if you want to change logging settings at runtime, simply change your org.ops4j.pax.logging.properties file and from osgi console update org.ops4j.pax.confman.propsloader bundle.