1 #ifndef STAN_CALLBACKS_LOGGER_HPP 2 #define STAN_CALLBACKS_LOGGER_HPP 3 4 #include <string> 5 #include <sstream> 6 7 namespace stan { 8 namespace callbacks { 9 10 /** 11 * The <code>logger</code> class defines the callback 12 * used by Stan's algorithms to log messages in the 13 * interfaces. The base class can be used as a no-op 14 * implementation. 15 * 16 * These are the logging levels used by <code>logger</code>, 17 * in order: 18 * 1. debug 19 * 2. info 20 * 3. warn 21 * 4. error 22 * 5. fatal 23 */ 24 class logger { 25 public: ~logger()26 virtual ~logger() {} 27 28 /** 29 * Logs a message with debug log level 30 * 31 * @param[in] message message 32 */ debug(const std::string & message)33 virtual void debug(const std::string& message) { } 34 35 /** 36 * Logs a message with debug log level. 37 * 38 * @param[in] message message 39 */ debug(const std::stringstream & message)40 virtual void debug(const std::stringstream& message) { } 41 42 /** 43 * Logs a message with info log level. 44 * 45 * @param[in] message message 46 */ info(const std::string & message)47 virtual void info(const std::string& message) { } 48 49 /** 50 * Logs a message with info log level. 51 * 52 * @param[in] message message 53 */ info(const std::stringstream & message)54 virtual void info(const std::stringstream& message) { } 55 56 /** 57 * Logs a message with warn log level. 58 * 59 * @param[in] message message 60 */ warn(const std::string & message)61 virtual void warn(const std::string& message) { } 62 63 /** 64 * Logs a message with warn log level. 65 * 66 * @param[in] message message 67 */ warn(const std::stringstream & message)68 virtual void warn(const std::stringstream& message) { } 69 70 /** 71 * Logs an error with error log level. 72 * 73 * @param[in] message message 74 */ error(const std::string & message)75 virtual void error(const std::string& message) { } 76 77 /** 78 * Logs an error with error log level. 79 * 80 * @param[in] message message 81 */ error(const std::stringstream & message)82 virtual void error(const std::stringstream& message) { } 83 84 /** 85 * Logs an error with fatal log level. 86 * 87 * @param[in] message message 88 */ fatal(const std::string & message)89 virtual void fatal(const std::string& message) { } 90 91 /** 92 * Logs an error with fatal log level. 93 * 94 * @param[in] message message 95 */ fatal(const std::stringstream & message)96 virtual void fatal(const std::stringstream& message) { } 97 }; 98 } 99 } 100 101 #endif 102