Building a Log system for the engine

This is the first in a series of tutorials about programming different pieces of a game engine. I'll be using my own engine, Revolution Engine as a framework for these tutorials, but the code is intended to be easy to adapt to different projects. In this first tutorial we will design and implement a simple but powerful log system for Revolution Engine. The log system is one of the first things you should write for your engine (and for most big projects, in fact).
Let's dive in.