#pragma once #include #ifdef _WIN32 #define filename(x) strrchr(x,'\\')?strrchr(x,'\\')+1:x #else #if __GNUC__ >= 4 #define filename(x) strrchr(x,'/')?strrchr(x,'/')+1:x #endif #endif #define CREATE_LOG_HEAD \ char acLogStr[1024*4] = {0};\ int iHeadLength = sprintf_s(acLogStr, 1024*4, "[%s:%d] %s: ", filename(__FILE__), __LINE__, __FUNCTION__);\ #define LOG_TRACE(...) \ {\ CREATE_LOG_HEAD\ snprintf(acLogStr+iHeadLength, sizeof(acLogStr)-iHeadLength, __VA_ARGS__);\ printf("[TRACE] %s", acLogStr);\ } #define LOG_DEBUG(...) \ {\ CREATE_LOG_HEAD\ sprintf_s(acLogStr+iHeadLength, sizeof(acLogStr)-iHeadLength, __VA_ARGS__);\ printf("[DEBUG] %s", acLogStr);\ } #define LOG_INFO(...) \ {\ CREATE_LOG_HEAD\ snprintf(acLogStr+iHeadLength, sizeof(acLogStr)-iHeadLength, __VA_ARGS__);\ printf("[INFO] %s", acLogStr);\ } #define LOG_WARN(...) \ {\ CREATE_LOG_HEAD\ snprintf(acLogStr+iHeadLength, sizeof(acLogStr)-iHeadLength, __VA_ARGS__);\ printf("[WARN] %s", acLogStr);\ } #define LOG_ERROR(...) \ {\ CREATE_LOG_HEAD\ snprintf(acLogStr+iHeadLength, sizeof(acLogStr)-iHeadLength, __VA_ARGS__);\ printf("[ERROR] %s", acLogStr);\ }