Inspired by log4j, still under development.