On 07/12/2012 05:59 PM, Rick Hillegas 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 >>>> >>> 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 >
Hi Rick, You described my concern precisely. Maybe I can find a solution through the stack trace when the logging method is called. Thanks for the help, best, Suat
