A number of people have asked about logging in the driver, and
specifically about the use of log4j.
There are a number of issues with this.
1) It means that we have to have another jar, and likely include in the
distribution. For folks that don't use java this is a burden. Think of
it this way, do you want to download a bunch of perl modules with the
driver so you can use jdbc?
2) log4j uses a propery file to load it's configuration and it seems
there are some *very* creative ways to load database drivers out there
which do not load the log4j properties correctly.
3) Regardless of how fast log4j is or isn't it is still will slow the
driver down. And as Hans pointed out java has no preprocessing so we
either get logging in there or not.
4) log4j does facilitate changing the loglevel at runtime instead of
compile time, but we still run into issues where we have to create a
string object to log whereas now we don't so code like:
foo(getInfofrombackend())
Becomes
String msg = getInfofrombackend();
logger.debug(msg);
foo(msg);
So the question is:
Do we want to put logging in the driver?
Why?
How much?
At what cost?
I have given some thought to question 1) above and we could use a
pluggable logger so that log4j could be used if configured or, there
would be a default logger. However this would only slow things down even
more.
Dave