Added a MessageLog class for logging messages that occur during operations