db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rick Hillegas <rick.hille...@oracle.com>
Subject Re: Changing logging mechanism for derby.log
Date Thu, 12 Jul 2012 14:59:00 GMT
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

Mime
View raw message