[Logger] Gone up to an higher level of abstraction

- Logger is declared as an abstract class
- SDFileLogger has been refactored as a subclass of Logger