X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=server%2Flog.h;h=cc038a0cef4a4325f20227c54b18d1ecebc10ef4;hb=54fe09504c1d38053032bd99ef6f1ab1a6f34b08;hp=99d54d09ab55ad8bdc1be11a9bce0d8b74ebc053;hpb=733a9b968264c48b5340693ce17e1874c1aeff77;p=matches%2FMCTX3420.git diff --git a/server/log.h b/server/log.h index 99d54d0..cc038a0 100644 --- a/server/log.h +++ b/server/log.h @@ -1,22 +1,24 @@ /** * @file log.h - * @purpose Declaration of functions for printing log messages and/or terminating program after a fatal error + * @brief Declaration of functions for printing log messages and/or terminating program after a fatal error */ #ifndef _LOG_H #define _LOG_H -#include -#include -#include -#include +//To get around a 'pedantic' C99 rule that you must have at least 1 variadic arg, combine fmt into that. +#define Log(level, ...) LogEx(level, __func__, __FILE__, __LINE__, __VA_ARGS__) +#define Fatal(...) FatalEx(__func__, __FILE__, __LINE__, __VA_ARGS__) +/*** Macro to abort function ***/ +#define Abort(...) { LogEx(LOGERR, __func__, __FILE__, __LINE__, __VA_ARGS__); return; } +#define AbortBool(...) { LogEx(LOGERR, __func__, __FILE__, __LINE__, __VA_ARGS__); return false; } // An enum to make the severity of log messages human readable in code enum {LOGERR=0, LOGWARN=1, LOGNOTE=2, LOGINFO=3,LOGDEBUG=4}; -extern void Log(int level, char * funct, char * fmt,...); // General function for printing log messages to stderr -extern void Fatal(char * funct, char * fmt, ...); // Function that deals with a fatal error (prints a message, then exits the program). +extern void LogEx(int level, const char * funct, const char * file, int line, ...); // General function for printing log messages to stderr +extern void FatalEx(const char * funct, const char * file, int line, ...); // Function that deals with a fatal error (prints a message, then exits the program). #endif //_LOG_H