#include "..\config_macros.hpp" #define LOG_BASE(level,msg) diag_log text format[QUOTE(ADDON[level]: %1), msg] #define LOG(msg) LOG_BASE(DEBUG, LOG_FILENUMBER(msg)) #define LOGF_1(msg,arg0) LOG(format[ARR_2(msg,arg0)]) #define LOGF_2(msg,arg0,arg1) LOG(format[ARR_3(msg,arg0,arg1)]) #define LOGF_3(msg,arg0,arg1,arg2) LOG(format[ARR_4(msg,arg0,arg1,arg2)]) #define LOG_ERROR(msg) LOG_BASE(ERR,LOG_FILENUMBER(msg)) #define LOG_ERRORF_1(msg,arg0) LOG_ERROR(format[ARR_2(msg,arg0)]) #define LOG_ERRORF_2(msg,arg0,arg1) LOG_ERROR(format[ARR_3(msg,arg0,arg1)]) #define LOG_FILENUMBER(msg) format [ARR_4('%1 at %2:%3',msg,__FILE__,__LINE__ + 1)]