SQL message logger run loop
As a quick first note ( I will add more later when I have time), I assume the first lines;

   if (running) {
            return;
   }
   running = true;    


are attempting to ensure that this code will only be running once at a time... You would have to use a lock to ensure this as currently a race condition could cause;

1.) A thread checks running is false

2.) A second thread checks this before the first sets it to true

3.) Both threads continue

This is probably not what you want to happen....

Regarding your question about the InterruptedException, you should NOT just swallow it. I suggest reading the following article which covers the reasoning behind this: http://www.ibm.com/developerworks/java/library/j-jtp05236/index.html?ca=drs-

You also seem to swallow Exceptions else where in the code (Once the base Exception class and not a subclass). This is a very bad habbit and you should consider which exceptions could happen and what that would imply for your code, then deal with them explicitly.