db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Libor Jelinek <ljeli...@virtage.com>
Subject Re: Changing logging mechanism for derby.log
Date Thu, 12 Jul 2012 21:53:59 GMT
Hello there,
I also don't consider myself as a OSGi super expert but just having some
experience in OSGi-fying other apps for Eclipse Equinox and it's sometimes
challenging.

Why is bad to by driven by system property? Consider you have bundle A that
is depending on (consuming) Derby bundle, then consumer bundle should
contribute a system property by normal Java means like System.setProperty().

Or in case of Equinox it's even easier as you can set system property for
JVM (actually Equinox launcher) declarative in product definition XML.

More over, I'm curious about your setup because Derby bundle should be
installed just and only once at most in one running OSGi environment
(framework).

Libor


On Thu, Jul 12, 2012 at 4:59 PM, Rick Hillegas <rick.hillegas@oracle.com>wrote:

> 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<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/<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