Skip to content

Instantly share code, notes, and snippets.

@kujyp
Last active October 22, 2018 01:39
Show Gist options
  • Save kujyp/9c84eff1b8c764671f1ef86d483c68a7 to your computer and use it in GitHub Desktop.
Save kujyp/9c84eff1b8c764671f1ef86d483c68a7 to your computer and use it in GitHub Desktop.
C++ logger using cout
#define __FILENAME__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
#define LOG_WARN_JYP(str) \
if (WARN <= g_logLevel) { \
LOG_JYP(str) \
};
#define LOG_DEBUG_JYP(str) \
if (DEBUG <= g_logLevel) { \
LOG_JYP(str) \
};
#define LOG_JYP(str) \
if (str != NULL) {\
cout << str; \
}
#define LOG_DEBUG_JYP_START() \
LOG_DEBUG_JYP("[DEBUG] [") \
LOG_DEBUG_JYP(__FILENAME__) \
LOG_DEBUG_JYP(":") \
LOG_DEBUG_JYP(__LINE__) \
LOG_DEBUG_JYP("] ")
#define LOG_WARN_JYP_START() \
LOG_WARN_JYP("[WARN] [") \
LOG_WARN_JYP(__FILENAME__) \
LOG_WARN_JYP(":") \
LOG_WARN_JYP(__LINE__) \
LOG_WARN_JYP("] ")
#define _LOG_DEBUG_JYP_VECTOR(vct) \
LOG_DEBUG_JYP("size=[") \
LOG_DEBUG_JYP(vct->size()) \
LOG_DEBUG_JYP("], content=[") \
for (auto i = vct->begin(); i != vct->end(); ++i) {\
LOG_DEBUG_JYP((*i)) \
LOG_DEBUG_JYP(", ") \
}
#define _LOG_WARN_JYP_VECTOR(vct) \
LOG_WARN_JYP("size=[") \
LOG_WARN_JYP(vct->size()) \
LOG_WARN_JYP("], content=[") \
for (auto i = vct->begin(); i != vct->end(); ++i) {\
LOG_WARN_JYP((*i)) \
LOG_WARN_JYP(", ") \
}
#define LOG_WARN_JYP_END() \
LOG_WARN_JYP("\n");
#define LOG_DEBUG_JYP_END() \
LOG_DEBUG_JYP("\n");
#define LOG_WARN_JYP_1(first) \
LOG_WARN_JYP_START() \
LOG_WARN_JYP(first) \
LOG_WARN_JYP_END()
#define LOG_DEBUG_JYP_1(first) \
LOG_DEBUG_JYP_START() \
LOG_DEBUG_JYP(first) \
LOG_DEBUG_JYP_END()
#define LOG_WARN_JYP_2(first, second) \
LOG_WARN_JYP_START() \
LOG_WARN_JYP(first) \
LOG_WARN_JYP("=[") \
LOG_WARN_JYP(second) \
LOG_WARN_JYP("]") \
LOG_WARN_JYP_END()
#define LOG_DEBUG_JYP_2(first, second) \
LOG_DEBUG_JYP_START() \
LOG_DEBUG_JYP(first) \
LOG_DEBUG_JYP("=[") \
LOG_DEBUG_JYP(second) \
LOG_DEBUG_JYP("]") \
LOG_DEBUG_JYP_END()
#define LOG_WARN_JYP_VECTOR(first, vector) \
LOG_WARN_JYP_START() \
LOG_WARN_JYP(first) \
LOG_WARN_JYP("=[") \
_LOG_WARN_JYP_VECTOR(vector) \
LOG_WARN_JYP("]") \
LOG_WARN_JYP_END()
#define LOG_DEBUG_JYP_VECTOR(first, vector) \
LOG_DEBUG_JYP_START() \
LOG_DEBUG_JYP(first) \
LOG_DEBUG_JYP("=[") \
_LOG_DEBUG_JYP_VECTOR(vector) \
LOG_DEBUG_JYP("]") \
LOG_DEBUG_JYP_END()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment