Fixed to work properly if stop() called before start().
Fixed to use ReentrantLock instead of syncronized.
Added log formatter implementation.
Fixed to recover on OutOfMemoryError properly.