Enhancement

1. logger
2. refactor
3. Fix daemon thread problem.
Usually I will mock all function call in side `start_backup` only test current test function's logic.
So I don't have to **really** create threads or something to improve unit test time duration.