On 7/12/12 6:26 AM, Suat Gonul wrote:
On 07/12/2012 03:54 PM, Rick Hillegas wrote:
On 7/12/12 5:22 AM, Suat Gonul wrote:
Hi everybody,
In an OSGi based environment we are using the Derby database. So, I
would like to adjust location and the names of the derby.log file.
However, adjusting the global system properties e.g "derby.system.home",
"derby.stream.error.file" is not an option for us as there might be
other bundles using the Derby.
In our system, we use Sling Logging Tools [1]. Is there any way to
integrate those tools with the logging mechanism of Derby. Or is there
any other way to configure the location and name of the "derby.log"
file? Thanks in advance...
Best,
Suat
[1] http://sling.apache.org/site/logging.html
Hi Suat,
If you can wrap your custom logger in a class which implements
java.io.OutputStream or java.io.Writer, then you can configure Derby
to use that class. Please see the Reference Manual section on setting
the derby.stream.error.method system property:
http://db.apache.org/derby/docs/10.9/ref/
Hope this helps,
-Rick
Thanks for the fast reply. Then the only way to configure logging is to
adjust some system properties. Is there a way so that one OSGi component
uses "method1" while the other uses "method2" for logging. I am asking
this, because those components use completely different schemas.
Best,
Suat
Hi Suat,
The method would have to figure out what component it is running in. I'm
not an expert on how OSGi works but it is likely that each component
runs in its own Classloader. What if the method was in a class loaded by
the same Classloader which loaded the Derby instance? Could you map
Classloaders to components and then map components to the configuration
information you need to pick the right log file? What if the Sling
Logging Tools were loaded, per component, by the same Classloader which
loaded the Derby instance? Sorry to be waving my hands here.
I may not be understanding your problem. It sounds as though you have
multiple Derby instances and you want each instance to log error
messages to a separate file.
Hope this helps and doesn't just muddle the problem,
-Rick