fork download
  1. #include <iostream>
  2. #include <sstream>
  3.  
  4. enum eLogLevel { eLogLevel_INFO };
  5.  
  6. std::wstring Time2String() {
  7. return L"now";
  8. }
  9.  
  10. #define LOG_HELPER __FUNCTION__ << L"(): "
  11. #define LOG_HELPER_2 L"[" << Time2String() << L"] "
  12.  
  13. inline void LogMessage(eLogLevel lvl, const std::wstringstream& str, const std::wstringstream& logHelper) {
  14. std::wcout << static_cast<int>(lvl) << L" " << logHelper.str() << L" " << str.str() << std::endl;
  15. }
  16.  
  17. #define LogInfo(str) { \
  18.   LogMessage(eLogLevel_INFO, \
  19.   static_cast<std::wstringstream&>(std::wstringstream() << LOG_HELPER << str), \
  20.   static_cast<std::wstringstream&>(std::wstringstream() << LOG_HELPER_2) \
  21.   ); \
  22. }
  23.  
  24. int main()
  25. {
  26. LogInfo(L"Test log");
  27. return 0;
  28. }
Success #stdin #stdout 0s 5664KB
stdin
Standard input is empty
stdout
0 [now]  main(): Test log