I think it's only a partial solution for his question.
The main issue however isn't solved by using PAX Logging: it seems he
wants to be able to use some kind of logging context.
If I understand correctly then Laurens wants to be able to control the
output of specific bundles in specific contexts.
Say for example if I have a bundle (bundle X in your case) which
utilizes another bundle (Bundle Y) and calls
BundleY.MathUtils.multiply(a,b) on this bundle. Somethings goes wrong in
Bundle Y and he wants to log a warning, if I understand correctly you
want this warning to be logged in the log file of Bundle X?
You probably want something like this because BundleY is called by
several other bundles?
I'm also looking into something like this because this can be really
useful if you're debugging your applications since there is only related
information logged. Say for example if you have webapplications deployed
as bundles then you want that application/bundle to log to its own log
file and if that application calls any libraries then that library
should also log to the log file of the application. (Just like in normal
webcontainers)
On 10/14/2010 03:58 PM, Achim Nierbeck wrote:
You might also take a look at PAX-Logging, to me it looks like it would be
the one you are searching for :)
2010/10/14 Michael Hess<[email protected]>
Hello,
We have the following problem:
Multiple bundles run on osgi, each of them has a log file. If bundle X
calls
bundle Y and a warning occurs in bundle Y, we want to log the warning in
the
log file of bundle X. But the problem we have at the moment is that
bundle Y
doesn?t know bundle X and how bundle Y knows who have called him.
We have thought of 3 possible ways to solve the problem:
1. StackTrace, but we think it is slow and it?s not nice to use
stackt
race.
2. Set the context in another bundle, so bundle Y can use the
function
getlogger to our own created bundle
3. Security Manager, but we don?t know whether it works well with
osgi.
We want to know which way is the best or maybe someone has the
experience
with this problem or knows another solution that we haven?t thought of
yet.
To me it seems, like the separation of logfiles is not what you want.
What we did in our project, was to create a Logging Service. It is pretty
much a wrapper around log4j (or another backend of choice), and the bundle
exposes a ServiceFactory which gives every bundle its own logger instance.
In the activator of our bundles, the logger is retrieved and the bundle
can then use it. So what we have, is the "logging bundle" which writes a
single log file, and all bundles of the system can participate by issueing
their log statements toward that bundle via the exposed service.
Kind regards,
Laurens
bye, Michael
The information included in this e-mail and any files transmitted with it
is strictly confidential and may be privileged or otherwise protected from
disclosure. If you are not the intended recipient, please notify the sender
immediately by e-mail and delete this e-mail as well as any attachment from
your system. If you are not the intended recipient you are not authorized to
use and/or copy this message and/or attachment and/or disclose the contents
to any other person.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]