20 #ifndef LIBMESH_LIBMESH_LOGGING_H
21 #define LIBMESH_LIBMESH_LOGGING_H
25 #include "libmesh/libmesh_common.h"
27 #include "libmesh/perf_log.h"
31 #define TOKENPASTE(x, y) x ## y
32 #define TOKENPASTE2(x, y) TOKENPASTE(x, y)
69 PerfLog * my_perflog=&
perflog) :
102 #ifdef LIBMESH_ENABLE_PERFORMANCE_LOGGING
104 # define START_LOG(a,b) { libMesh::perflog.push(a,b); }
105 # define STOP_LOG(a,b) { libMesh::perflog.pop(a,b); }
106 # define LOG_SCOPE(a,b) libMesh::PerfItem TOKENPASTE2(perf_item_, __LINE__)(a,b);
107 # define LOG_SCOPE_IF(a,b,enabled) libMesh::PerfItem TOKENPASTE2(perf_item_, __LINE__)(a,b,enabled);
108 # define LOG_SCOPE_WITH(a,b,logger) libMesh::PerfItem TOKENPASTE2(perf_item_, __LINE__)(a,b,true,&logger);
112 # define START_LOG(a,b) {}
113 # define STOP_LOG(a,b) {}
114 # define PALIBMESH_USE_LOG(a,b) {}
115 # define RESTART_LOG(a,b) {}
116 # define LOG_SCOPE(a,b) {}
117 # define LOG_SCOPE_IF(a,b,enabled) {}
118 # define LOG_SCOPE_WITH(a,b,logger) {}
123 #define LOG_CALL(a,b,X) \
132 #endif // LIBMESH_LIBMESH_LOGGING_H
Used for logging something that naturally lasts as long as some enclosing scope, such as the current ...
PerfItem(const char *label, const char *header, bool enabled=true, PerfLog *my_perflog=&perflog)
PerfLog perflog
A PerfLog object to log performance.