+ /** Logs an event, sending it to all LogStreams registered for the type.
+ * @param type Log message type (ex: "USERINPUT", "MODULE", ...)
+ * @param loglevel Log message level (LOG_DEBUG, LOG_VERBOSE, LOG_DEFAULT, LOG_SPARSE, LOG_NONE)
+ * @param msg The message to be logged (literal).
+ */
+ void Log(const std::string &type, LogLevel loglevel, const std::string &msg);
+
+ /** Logs an event, sending it to all LogStreams registered for the type.
+ * @param type Log message type (ex: "USERINPUT", "MODULE", ...)
+ * @param loglevel Log message level (LOG_DEBUG, LOG_VERBOSE, LOG_DEFAULT, LOG_SPARSE, LOG_NONE)
+ * @param fmt The format of the message to be logged. See your C manual on printf() for details.
+ */
+ void Log(const std::string &type, LogLevel loglevel, const char *fmt, ...) CUSTOM_PRINTF(4, 5);
+};