Fixes #3
Async loggers do not return the source of the call since the new thread does not have access to it. The code crashed on the assumption getSource() was never null. Now getSource() is checked before usage.