GeNN
4.0.0
GPU enhanced Neuronal Networks (GeNN)
Log.h
Go to the documentation of this file.
1
// Plog - portable and simple log for C++
3
// Documentation and sources: https://github.com/SergiusTheBest/plog
4
// License: MPL 2.0, http://mozilla.org/MPL/2.0/
5
6
#pragma once
7
#include <
plog/Logger.h
>
8
#include <
plog/Init.h
>
9
11
// Helper macros that get context info
12
13
#if defined(_MSC_VER) && (_MSC_VER >= 1600 && _MSC_VER < 1912 || _MSC_VER > 1916) && !defined(__INTELLISENSE__) && !defined(__INTEL_COMPILER) && !defined(__llvm__) // >= Visual Studio 2010, skip IntelliSense, Intel Compiler and Clang Code Model
14
# define PLOG_GET_THIS() __if_exists(this) { this } __if_not_exists(this) { 0 }
15
#else
16
# define PLOG_GET_THIS() reinterpret_cast<void*>(0)
17
#endif
18
19
#ifdef _MSC_VER
20
# define PLOG_GET_FUNC() __FUNCTION__
21
#elif defined(__BORLANDC__)
22
# define PLOG_GET_FUNC() __FUNC__
23
#else
24
# define PLOG_GET_FUNC() __PRETTY_FUNCTION__
25
#endif
26
27
#ifdef PLOG_CAPTURE_FILE
28
# define PLOG_GET_FILE() __FILE__
29
#else
30
# define PLOG_GET_FILE() ""
31
#endif
32
34
// Log severity level checker
35
36
#define IF_LOG_(instance, severity) if (!plog::get<instance>() || !plog::get<instance>()->checkSeverity(severity)) {;} else
37
#define IF_LOG(severity) IF_LOG_(PLOG_DEFAULT_INSTANCE, severity)
38
40
// Main logging macros
41
42
#define LOG_(instance, severity) IF_LOG_(instance, severity) (*plog::get<instance>()) += plog::Record(severity, PLOG_GET_FUNC(), __LINE__, PLOG_GET_FILE(), PLOG_GET_THIS()).ref()
43
#define LOG(severity) LOG_(PLOG_DEFAULT_INSTANCE, severity)
44
45
#define LOG_VERBOSE LOG(plog::verbose)
46
#define LOG_DEBUG LOG(plog::debug)
47
#define LOG_INFO LOG(plog::info)
48
#define LOG_WARNING LOG(plog::warning)
49
#define LOG_ERROR LOG(plog::error)
50
#define LOG_FATAL LOG(plog::fatal)
51
#define LOG_NONE LOG(plog::none)
52
53
#define LOG_VERBOSE_(instance) LOG_(instance, plog::verbose)
54
#define LOG_DEBUG_(instance) LOG_(instance, plog::debug)
55
#define LOG_INFO_(instance) LOG_(instance, plog::info)
56
#define LOG_WARNING_(instance) LOG_(instance, plog::warning)
57
#define LOG_ERROR_(instance) LOG_(instance, plog::error)
58
#define LOG_FATAL_(instance) LOG_(instance, plog::fatal)
59
#define LOG_NONE_(instance) LOG_(instance, plog::none)
60
61
#define LOGV LOG_VERBOSE
62
#define LOGD LOG_DEBUG
63
#define LOGI LOG_INFO
64
#define LOGW LOG_WARNING
65
#define LOGE LOG_ERROR
66
#define LOGF LOG_FATAL
67
#define LOGN LOG_NONE
68
69
#define LOGV_(instance) LOG_VERBOSE_(instance)
70
#define LOGD_(instance) LOG_DEBUG_(instance)
71
#define LOGI_(instance) LOG_INFO_(instance)
72
#define LOGW_(instance) LOG_WARNING_(instance)
73
#define LOGE_(instance) LOG_ERROR_(instance)
74
#define LOGF_(instance) LOG_FATAL_(instance)
75
#define LOGN_(instance) LOG_NONE_(instance)
76
78
// Conditional logging macros
79
80
#define LOG_IF_(instance, severity, condition) if (!(condition)) {;} else LOG_(instance, severity)
81
#define LOG_IF(severity, condition) LOG_IF_(PLOG_DEFAULT_INSTANCE, severity, condition)
82
83
#define LOG_VERBOSE_IF(condition) LOG_IF(plog::verbose, condition)
84
#define LOG_DEBUG_IF(condition) LOG_IF(plog::debug, condition)
85
#define LOG_INFO_IF(condition) LOG_IF(plog::info, condition)
86
#define LOG_WARNING_IF(condition) LOG_IF(plog::warning, condition)
87
#define LOG_ERROR_IF(condition) LOG_IF(plog::error, condition)
88
#define LOG_FATAL_IF(condition) LOG_IF(plog::fatal, condition)
89
#define LOG_NONE_IF(condition) LOG_IF(plog::none, condition)
90
91
#define LOG_VERBOSE_IF_(instance, condition) LOG_IF_(instance, plog::verbose, condition)
92
#define LOG_DEBUG_IF_(instance, condition) LOG_IF_(instance, plog::debug, condition)
93
#define LOG_INFO_IF_(instance, condition) LOG_IF_(instance, plog::info, condition)
94
#define LOG_WARNING_IF_(instance, condition) LOG_IF_(instance, plog::warning, condition)
95
#define LOG_ERROR_IF_(instance, condition) LOG_IF_(instance, plog::error, condition)
96
#define LOG_FATAL_IF_(instance, condition) LOG_IF_(instance, plog::fatal, condition)
97
#define LOG_NONE_IF_(instance, condition) LOG_IF_(instance, plog::none, condition)
98
99
#define LOGV_IF(condition) LOG_VERBOSE_IF(condition)
100
#define LOGD_IF(condition) LOG_DEBUG_IF(condition)
101
#define LOGI_IF(condition) LOG_INFO_IF(condition)
102
#define LOGW_IF(condition) LOG_WARNING_IF(condition)
103
#define LOGE_IF(condition) LOG_ERROR_IF(condition)
104
#define LOGF_IF(condition) LOG_FATAL_IF(condition)
105
#define LOGN_IF(condition) LOG_NONE_IF(condition)
106
107
#define LOGV_IF_(instance, condition) LOG_VERBOSE_IF_(instance, condition)
108
#define LOGD_IF_(instance, condition) LOG_DEBUG_IF_(instance, condition)
109
#define LOGI_IF_(instance, condition) LOG_INFO_IF_(instance, condition)
110
#define LOGW_IF_(instance, condition) LOG_WARNING_IF_(instance, condition)
111
#define LOGE_IF_(instance, condition) LOG_ERROR_IF_(instance, condition)
112
#define LOGF_IF_(instance, condition) LOG_FATAL_IF_(instance, condition)
113
#define LOGN_IF_(instance, condition) LOG_NONE_IF_(instance, condition)
Init.h
Logger.h
include
genn
third_party
plog
Log.h
Generated on Mon Mar 25 2019 15:38:08 for GeNN by
1.8.13