2020namespace config {
2121 extern PyObject* logger;
2222};
23+ extern double logger_timer;
24+ extern char logger_msg[];
2325void log_call (const char * msg);
2426
2527
2628#define ES_FUNCTION (decl, call, log_msg ) \
2729 decl { \
2830 try { \
2931 if (config::logger) { \
30- log_call (" call: " log_msg); \
32+ snprintf (logger_msg, 1000 , " call %s" , log_msg); \
33+ log_call (logger_msg); \
34+ logger_timer = wallclock (); \
3135 PyObject* res = call; \
32- log_call (" done: " log_msg); \
36+ snprintf (logger_msg, 1000 , " done %s in %.3f ms" , \
37+ log_msg, (wallclock () - logger_timer) * 1000.0 ); \
38+ log_call (logger_msg); \
3339 return res; \
3440 } else { \
3541 return call; \
@@ -45,9 +51,13 @@ void log_call(const char* msg);
4551 decl { \
4652 try { \
4753 if (config::logger) { \
48- log_call (" call: " log_msg); \
54+ snprintf (logger_msg, 1000 , " call %s" , log_msg); \
55+ log_call (logger_msg); \
56+ logger_timer = wallclock (); \
4957 call; \
50- log_call (" done: " log_msg); \
58+ snprintf (logger_msg, 1000 , " done %s in %.3f ms" , \
59+ log_msg, (wallclock () - logger_timer) * 1000.0 ); \
60+ log_call (logger_msg); \
5161 } else { \
5262 call; \
5363 } \
@@ -61,9 +71,13 @@ void log_call(const char* msg);
6171 decl { \
6272 try { \
6373 if (config::logger) { \
64- log_call (" call: " log_msg); \
74+ snprintf (logger_msg, 1000 , " call %s" , log_msg); \
75+ log_call (logger_msg); \
76+ logger_timer = wallclock (); \
6577 int res = call; \
66- log_call (" done: " log_msg); \
78+ snprintf (logger_msg, 1000 , " done %s in %.3f ms" , \
79+ log_msg, (wallclock () - logger_timer) * 1000.0 ); \
80+ log_call (logger_msg); \
6781 return res; \
6882 } else { \
6983 return call; \
0 commit comments