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.