Update Titlepage with links to individual sections
[matches/MCTX3420.git] / server / log.h
index 99d54d0..e4fd17f 100644 (file)
@@ -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 <stdlib.h>
-#include <stdio.h>
-#include <stdbool.h>
-#include <stdarg.h>
+//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
+/** 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
 

UCC git Repository :: git.ucc.asn.au