This splits the existing logger class into a more modular architecture, allowing for easier implementation of loggers for other targets (AMQP, GELF, systemd, etc).
I'm not sure about the interfaces, so please take a look and comment. Also method and class names are not final yet. Feedback welcome.
I also looked at existing logging subsystems, specifically monolog (https://github.com/Seldaek/monolog), but it seemed too abstract and not modular enough.
Any opinions on this?