X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMoof%2FLog.hh;h=221827f4eb86fcbcb03e4b6b628124b48e6dc8d4;hp=d3e4009c4a5a43f59393a8302922e9995f12bea0;hb=cfe38a72ab859538db6269bc9b97f55e8f1f8709;hpb=5fa5f117f28922a7e539a432367960c1a61f837d diff --git a/src/Moof/Log.hh b/src/Moof/Log.hh index d3e4009..221827f 100644 --- a/src/Moof/Log.hh +++ b/src/Moof/Log.hh @@ -37,22 +37,24 @@ */ #include // exit -#include // errno -#include // strerror - - -namespace Mf { /** * Macro which tests an assertion and issues an logError() and exits if false. - * This differs from the standard assert() in that this is a runtime assertion - * test and will always be compiled in. * @param X test to perform */ -#define ASSERT(X) if (!(X)) logError("false assertion at %s:%d, " #X \ - " (errno: %d, %s)", __FILE__, __LINE__, errno, strerror(errno)), exit(1) +#undef ASSERT + +#if NDEBUG +#define ASSERT(X) +#else +#define ASSERT(X) if (!(X)) Mf::logError("false assertion at %s:%d, " #X, \ + __FILE__, __LINE__), exit(1) +#endif + + +namespace Mf { /** @@ -61,13 +63,15 @@ namespace Mf { * @see LogLevel() */ -typedef enum { - NONE = -1, ///< Disable all logging. - ERROR = 1, ///< Log only errors. - WARNING = 2, ///< Log warnings and errors. - INFO = 3, ///< Log info, warnings, errors. - DEBUGGING = 4 ///< Log all messages. -} LogLevel; +enum LogLevel +{ + LOG_NONE = -1, ///< Disable all logging. + LOG_ERROR = 1, ///< Log only errors. + LOG_WARNING = 2, ///< Log warnings and errors. + LOG_SCRIPT = 3, ///< Log messages from Lua, too. + LOG_INFO = 4, ///< Log info, warnings, errors. + LOG_DEBUG = 5, ///< Log all messages. +}; /** @@ -112,6 +116,11 @@ void logInfo(const char* fmt, ...); void logDebug(const char* fmt, ...); +void logScript(const char* fmt, ...); +class Script; +int logScript(Script& script); +void importLogScript(Script& script); + } // namespace Mf