Update Logger to use a much better interface, with log levels and the like