felix-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Guillaume Nodet <gno...@gmail.com>
Subject Re: Logging in Karaf/OSGI
Date Thu, 08 Apr 2010 12:13:44 GMT
I don't think we'd have any issues with improving Karaf ;-)

I do understand the need for more focused logging, we've had a similar
request to be
able to log to different files wrt to the "feature" logging.   So I'm
personnaly opened to any improvement,
but getting rid of ops4j pax logging service is not really an option in my
mind, unless it is replaced by something
equivalent (which can centralize calls to multiple logging libraries).

If you really want to be able to track which bundle is logging, the only way
that comes to my mind is
to use the OSGi Log Service.  As you say, however, it's use is not really
easy.  I guess one way would
be to wrap it in a more friendly class / api.   But I'd say that what pax
logging already provides that in its
native api.

Take a look at the org.ops4j.pax.logging.OSGIPaxLoggingManager.  It is quite
easy to use:

 OSGIPaxLoggingManager manager = new OSGIPaxLoggingManager(bundleContext);
 PaxLogger logger = manager.getLogger(category, fqcn);

It will track the bundle logging events.

For the MDC thingy, pax logging also provides an MDC support:
   PaxLoggingService service = manager.getPaxLoggingService();
   service.getContext().put(key, val);

Hopes this helps.

On Thu, Apr 8, 2010 at 07:32, Bengt Rodehav <bengt@rodehav.com> wrote:

> I'm in the process of building an integration platform using Karaf +
> Camel. Part of this includes providing the user with log information
> per installed service (OSGI service). This doesn't seem to be easily
> accomplished.
>
> Karaf uses log4j with a special appender that routes all logging to
> the OSGI LogService. However, this way the OSGI LogService does not
> get any information regarding the source OSGI service which is
> unfortunate since I intended to use the OSGI LogReaderService to show
> the relevant log entries (for the specified service) in the user
> interface.
>
> I've also tried to use the OSGI LogService directly. Although this
> works in principal, it is not a very convenient way of logging. I
> would like to transparently log the same way without having to care
> about passing the ServiceRefence of the current service to the
> LogService. Besides, it would be even better to separate the logs not
> on ServiceReference (which will be recreated each time a service stops
> and restarts) but on the configuration PID which is consistent over
> service restarts. Also, when logging using the LogService I seem to
> get all log entries duplicated when looking at the log using the
> LogReaderService.
>
> My question is therefore: Are there any plans to replace/improve the
> logging in Karaf? I've been looking at the slf4j/logback combination
> and it looks like a much better fit for OSGI. In particular there is a
> concept called "Mapped Diagnostic Context"
> (http://logback.qos.ch/manual/mdc.html) that seems to make it possible
> to add contextual information to the logging system. E g one can
> imagine that the ServiceReference (and possibly the service.pid) could
> be added to the context and automatically be logged.
>
>
> Best regards,
>
> /Bengt
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>
>


-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message