Hi Jeff,
> - in Y walk down the stack the number of frames you are from the real logger
> (e.g., X calls Y directly, look down one or two frames).
> - Get the classloader for the method running in that frame.
> - If you are on a recent framework then that classloader may well be a
> org.osgi.framework.BundleReference. If it is, cast and call getBundle().
> - carry on
>
> For some sample stack walking code, look at Equinox's
> ContextFinder.basicFindClassLoaders() method [0].
A problem with that is that the stacktrace doesn't give me bundle information.
If you have 2 bundles with the same class Foo(), you don't know which bundle
that Foo in the stacktrace refers to. You only get a name / method, not a
reference, else you could have find out what classloader loaded that class, and
so find out the bundle.
It's a nasty problem, but solution is more then welcome : All generic code
logging in one file isn't usefull without info what bundle used the generic
code.
Igmar
_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev