On 9/6/2013 5:35 AM, Bergquist, Brett wrote:
I finally broke down and wrote RollingFileStream which provides (and borrows) most of the 
functionality of java.logger.FileHandler to provide a rolling file stream.   Having derby.log grow 
forever on long running systems is just not acceptable anymore ;)   Realistically, I would like to 
provide this back to the derby community somehow as I found many requests for such a feature while 
searching and many references to using "derby.stream.error.method" or 
"derby.stream.error.field", but no good implementation of such.

I built a DerbyUtil.jar which the class along with a configurator class which can read a 
"derbylog.properties" file for configuration information.   I would like to locate this file at the 
same place as "derby.properties" so the configurator needs to find out what 
"derby.system.home" is set to.   Because of the default security policy installed by the network 
server and because my DerbyUtil.jar is separate, it cannot access the property.   Create and installing my 
own security policy is also a bit of a pain as the network server is started by Glassfish and there really is 
not much opportunity to pass startup parameters.

So is there someway to locate the location that  "derby.ssystem.home" is pointing to in 
my class that is being invoke by "derby.stream.error.field"?
You can read the system property derby.system.home and if not set use the property user.dir. That said, I think it would be good to incorporate this functionality into the core product and then the properties could go into derby.properties. It seems to me there was a Jira issue for this, but I can't find it right now.

How about a proposal that "derby.stream.error.field" can point to a static method that 
can take 0 or 1 parameters and if one parameter, it is passed the value of 
"derby.system.home" as a String.  This seems to be a simple change and could easily be 
accommodated by first using reflection to find the method that takes 0 parameters and if not found, 
retry with finding the method that takes one string parameter?

Brett


Reply via email to