Designed a more general purpose logging model.