Initial proof of concept.
Added unary file logging.
Added cout and cerr logging.
Alternative approach using temporory stream objects and supports timestamps and different logging levels and targets.