helics  3.0.1
loggingHelper.hpp
Go to the documentation of this file.
1 /*
2 Copyright (c) 2017-2021,
3 Battelle Memorial Institute; Lawrence Livermore National Security, LLC; Alliance for Sustainable
4 Energy, LLC. See the top-level NOTICE for additional details. All rights reserved.
5 SPDX-License-Identifier: BSD-3-Clause
6 */
7 #pragma once
8 
9 #include "helics/helics-config.h"
10 #include "helics/helics_enums.h"
11 
20 enum LogLevels : int {
34  FED = 99999
35 };
36 
37 #define LOG_ERROR(id, ident, message) sendToLogger(id, LogLevels::ERROR_LEVEL, ident, message)
38 #define LOG_ERROR_SIMPLE(message) \
39  sendToLogger(global_broker_id_local, LogLevels::ERROR_LEVEL, getIdentifier(), message)
40 #define LOG_WARNING(id, ident, message) sendToLogger(id, LogLevels::WARNING, ident, message)
41 
42 #define LOG_WARNING_SIMPLE(message) \
43  sendToLogger(global_broker_id_local, LogLevels::WARNING, getIdentifier(), message)
44 
45 #ifdef HELICS_ENABLE_LOGGING
46 # define LOG_SUMMARY(id, ident, message) \
47  if (maxLogLevel >= LogLevels::SUMMARY) { \
48  sendToLogger(id, LogLevels::SUMMARY, ident, message); \
49  }
50 
51 # define LOG_CONNECTIONS(id, ident, message) \
52  if (maxLogLevel >= LogLevels::CONNECTIONS) { \
53  sendToLogger(id, LogLevels::CONNECTIONS, ident, message); \
54  }
55 
56 # define LOG_INTERFACES(id, ident, message) \
57  if (maxLogLevel >= LogLevels::INTERFACES) { \
58  sendToLogger(id, LogLevels::INTERFACES, ident, message); \
59  }
60 
61 # ifdef HELICS_ENABLE_DEBUG_LOGGING
62 # define LOG_TIMING(id, ident, message) \
63  if (maxLogLevel >= LogLevels::TIMING) { \
64  sendToLogger(id, LogLevels::TIMING, ident, message); \
65  }
66 # define LOG_DATA_MESSAGES(id, ident, message) \
67  if (maxLogLevel >= LogLevels::DATA) { \
68  sendToLogger(id, LogLevels::DATA, ident, message); \
69  }
70 # define LOG_DEBUG_MESSAGES(id, ident, message) \
71  if (maxLogLevel >= LogLevels::DEBUG) { \
72  sendToLogger(id, LogLevels::DEBUG, ident, message); \
73  }
74 # else
75 # define LOG_TIMING(id, ident, message)
76 # define LOG_DATA_MESSAGES(id, ident, message)
77 # define LOG_DEBUG_MESSAGES(id, ident, message)
78 # endif
79 
80 # ifdef HELICS_ENABLE_TRACE_LOGGING
81 # define LOG_TRACE(id, ident, message) \
82  if (maxLogLevel >= LogLevels::TRACE) { \
83  sendToLogger(id, LogLevels::TRACE, ident, message); \
84  }
85 # else
86 # define LOG_TRACE(id, ident, message)
87 # endif
88 #else
89 # define LOG_SUMMARY(id, ident, message)
90 # define LOG_CONNECTIONS(id, ident, message)
91 # define LOG_INTERFACES(id, ident, message)
92 # define LOG_TIMING(id, ident, message)
93 # define LOG_DATA_MESSAGES(id, ident, message)
94 # define LOG_DEBUG_MESSAGES(id, ident, message)
95 # define LOG_TRACE(id, ident, message)
96 #endif
SUMMARY
@ SUMMARY
print/log summary information
Definition: loggingHelper.hpp:25
TIMING
@ TIMING
print interfaces+ timing(exec/grant/disconnect)
Definition: loggingHelper.hpp:30
HELICS_LOG_LEVEL_PROFILING
@ HELICS_LOG_LEVEL_PROFILING
Definition: helics_enums.h:183
HELICS_LOG_LEVEL_NO_PRINT
@ HELICS_LOG_LEVEL_NO_PRINT
Definition: helics_enums.h:179
HELICS_LOG_LEVEL_CONNECTIONS
@ HELICS_LOG_LEVEL_CONNECTIONS
Definition: helics_enums.h:190
HELICS_LOG_LEVEL_WARNING
@ HELICS_LOG_LEVEL_WARNING
Definition: helics_enums.h:185
FED
@ FED
special logging command for message coming from a fed
Definition: loggingHelper.hpp:34
DEBUG
@ DEBUG
print data+additional debug info
Definition: loggingHelper.hpp:32
CONNECTIONS
@ CONNECTIONS
print summary+ federate level connection information
Definition: loggingHelper.hpp:26
ERROR_LEVEL
@ ERROR_LEVEL
only print errors
Definition: loggingHelper.hpp:22
HELICS_LOG_LEVEL_DEBUG
@ HELICS_LOG_LEVEL_DEBUG
Definition: helics_enums.h:198
DATA
@ DATA
print timing+data transmissions
Definition: loggingHelper.hpp:31
helics_enums.h
base helics enumerations for C and C++ API's
LogLevels
LogLevels
Definition: loggingHelper.hpp:20
HELICS_LOG_LEVEL_DATA
@ HELICS_LOG_LEVEL_DATA
Definition: helics_enums.h:196
PROFILING
@ PROFILING
profiling log level
Definition: loggingHelper.hpp:23
HELICS_LOG_LEVEL_SUMMARY
@ HELICS_LOG_LEVEL_SUMMARY
Definition: helics_enums.h:187
INTERFACES
@ INTERFACES
print connections +interface level connection information
Definition: loggingHelper.hpp:28
HELICS_LOG_LEVEL_ERROR
@ HELICS_LOG_LEVEL_ERROR
Definition: helics_enums.h:181
TRACE
@ TRACE
trace level printing (all processed messages)
Definition: loggingHelper.hpp:33
WARNING
@ WARNING
print/log warning and errors
Definition: loggingHelper.hpp:24
HELICS_LOG_LEVEL_TRACE
@ HELICS_LOG_LEVEL_TRACE
Definition: helics_enums.h:200
HELICS_LOG_LEVEL_TIMING
@ HELICS_LOG_LEVEL_TIMING
Definition: helics_enums.h:194
HELICS_LOG_LEVEL_INTERFACES
@ HELICS_LOG_LEVEL_INTERFACES
Definition: helics_enums.h:192
NO_PRINT
@ NO_PRINT
never print
Definition: loggingHelper.hpp:21