diff --git a/lib/log/Log.h b/lib/log/Log.h index ddff4c1d..6fd09124 100644 --- a/lib/log/Log.h +++ b/lib/log/Log.h @@ -1,4 +1,4 @@ - /************************************************************************************* +/************************************************************************************* Grid physics library, www.github.com/paboyle/Grid @@ -25,8 +25,8 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. See the full license in the file "LICENSE" in the top level distribution directory - *************************************************************************************/ - /* END LEGAL */ +*************************************************************************************/ +/* END LEGAL */ #include @@ -37,13 +37,12 @@ #include #endif -namespace Grid { +NAMESPACE_BEGIN(Grid); ////////////////////////////////////////////////////////////////////////////////////////////////// // Dress the output; use std::chrono for time stamping via the StopWatch class ////////////////////////////////////////////////////////////////////////////////////////////////// - class Colours{ protected: bool is_active; @@ -57,15 +56,15 @@ public: void Active(bool activate){ is_active=activate; if (is_active){ - colour["BLACK"] ="\033[30m"; - colour["RED"] ="\033[31m"; - colour["GREEN"] ="\033[32m"; - colour["YELLOW"] ="\033[33m"; - colour["BLUE"] ="\033[34m"; - colour["PURPLE"] ="\033[35m"; - colour["CYAN"] ="\033[36m"; - colour["WHITE"] ="\033[37m"; - colour["NORMAL"] ="\033[0;39m"; + colour["BLACK"] ="\033[30m"; + colour["RED"] ="\033[31m"; + colour["GREEN"] ="\033[32m"; + colour["YELLOW"] ="\033[33m"; + colour["BLUE"] ="\033[34m"; + colour["PURPLE"] ="\033[35m"; + colour["CYAN"] ="\033[36m"; + colour["WHITE"] ="\033[37m"; + colour["NORMAL"] ="\033[0;39m"; } else { colour["BLACK"] =""; colour["RED"] =""; @@ -101,14 +100,14 @@ public: std::string colour() {return Painter.colour[COLOUR];} Logger(std::string topNm, int on, std::string nm, Colours& col_class, std::string col) : active(on), - name(nm), - topName(topNm), - Painter(col_class), - timing_mode(0), - COLOUR(col) - { - StopWatch = & GlobalStopWatch; - }; + name(nm), + topName(topNm), + Painter(col_class), + timing_mode(0), + COLOUR(col) + { + StopWatch = & GlobalStopWatch; + }; void Active(int on) {active = on;}; int isActive(void) {return active;}; @@ -149,7 +148,7 @@ public: class GridLogger: public Logger { public: GridLogger(int on, std::string nm, Colours&col_class, std::string col_key = "NORMAL"): - Logger("Grid", on, nm, col_class, col_key){}; + Logger("Grid", on, nm, col_class, col_key){}; }; void GridLogConfigure(std::vector &logstreams); @@ -165,39 +164,39 @@ extern GridLogger GridLogIterative ; extern GridLogger GridLogIntegrator ; extern Colours GridLogColours; - std::string demangle(const char* name) ; +std::string demangle(const char* name) ; #define _NBACKTRACE (256) extern void * Grid_backtrace_buffer[_NBACKTRACE]; -#define BACKTRACEFILE() {\ -char string[20]; \ -std::sprintf(string,"backtrace.%d",CartesianCommunicator::RankWorld()); \ -std::FILE * fp = std::fopen(string,"w"); \ -BACKTRACEFP(fp)\ -std::fclose(fp); \ -} +#define BACKTRACEFILE() { \ + char string[20]; \ + std::sprintf(string,"backtrace.%d",CartesianCommunicator::RankWorld()); \ + std::FILE * fp = std::fopen(string,"w"); \ + BACKTRACEFP(fp) \ + std::fclose(fp); \ + } #ifdef HAVE_EXECINFO_H -#define BACKTRACEFP(fp) { \ -int symbols = backtrace (Grid_backtrace_buffer,_NBACKTRACE);\ -char **strings = backtrace_symbols(Grid_backtrace_buffer,symbols);\ -for (int i = 0; i < symbols; i++){\ - std::fprintf (fp,"BackTrace Strings: %d %s\n",i, demangle(strings[i]).c_str()); std::fflush(fp); \ -}\ -} +#define BACKTRACEFP(fp) { \ + int symbols = backtrace (Grid_backtrace_buffer,_NBACKTRACE); \ + char **strings = backtrace_symbols(Grid_backtrace_buffer,symbols); \ + for (int i = 0; i < symbols; i++){ \ + std::fprintf (fp,"BackTrace Strings: %d %s\n",i, demangle(strings[i]).c_str()); std::fflush(fp); \ + } \ + } #else -#define BACKTRACEFP(fp) { \ -std::fprintf (fp,"BT %d %lx\n",0, __builtin_return_address(0)); std::fflush(fp); \ -std::fprintf (fp,"BT %d %lx\n",1, __builtin_return_address(1)); std::fflush(fp); \ -std::fprintf (fp,"BT %d %lx\n",2, __builtin_return_address(2)); std::fflush(fp); \ -std::fprintf (fp,"BT %d %lx\n",3, __builtin_return_address(3)); std::fflush(fp); \ -} +#define BACKTRACEFP(fp) { \ + std::fprintf (fp,"BT %d %lx\n",0, __builtin_return_address(0)); std::fflush(fp); \ + std::fprintf (fp,"BT %d %lx\n",1, __builtin_return_address(1)); std::fflush(fp); \ + std::fprintf (fp,"BT %d %lx\n",2, __builtin_return_address(2)); std::fflush(fp); \ + std::fprintf (fp,"BT %d %lx\n",3, __builtin_return_address(3)); std::fflush(fp); \ + } #endif #define BACKTRACE() BACKTRACEFP(stdout) +NAMESPACE_END(Grid); -} #endif