comparison Core/Logging.h @ 3996:c2b9a7a1c74a

ORTHANC_FRAMEWORK_BUILDING_PLUGIN
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 05 Jun 2020 18:26:01 +0200
parents 1f405a3fdeca
children b3f09bc9734b
comparison
equal deleted inserted replaced
3995:1f405a3fdeca 3996:c2b9a7a1c74a
62 62
63 namespace Orthanc 63 namespace Orthanc
64 { 64 {
65 namespace Logging 65 namespace Logging
66 { 66 {
67 enum Level
68 {
69 Level_ERROR,
70 Level_WARNING,
71 Level_INFO,
72 Level_TRACE
73 };
74
67 #if ORTHANC_ENABLE_LOGGING_PLUGIN == 1 75 #if ORTHANC_ENABLE_LOGGING_PLUGIN == 1
68 // "pluginContext" must be of type "OrthancPluginContext" 76 // "pluginContext" must be of type "OrthancPluginContext"
69 ORTHANC_PUBLIC void Initialize(void* pluginContext); 77 ORTHANC_PUBLIC void Initialize(void* pluginContext);
70 #else 78 #else
71 ORTHANC_PUBLIC void Initialize(); 79 ORTHANC_PUBLIC void Initialize();
122 #elif (ORTHANC_ENABLE_LOGGING_PLUGIN == 1 || \ 130 #elif (ORTHANC_ENABLE_LOGGING_PLUGIN == 1 || \
123 ORTHANC_ENABLE_LOGGING_STDIO == 1) 131 ORTHANC_ENABLE_LOGGING_STDIO == 1)
124 132
125 # include <boost/noncopyable.hpp> 133 # include <boost/noncopyable.hpp>
126 # define LOG(level) ::Orthanc::Logging::InternalLogger \ 134 # define LOG(level) ::Orthanc::Logging::InternalLogger \
127 (::Orthanc::Logging::InternalLevel_ ## level, __FILE__, __LINE__) 135 (::Orthanc::Logging::Level_ ## level, __FILE__, __LINE__)
128 # define VLOG(level) ::Orthanc::Logging::InternalLogger \ 136 # define VLOG(level) ::Orthanc::Logging::InternalLogger \
129 (::Orthanc::Logging::InternalLevel_TRACE, __FILE__, __LINE__) 137 (::Orthanc::Logging::Level_TRACE, __FILE__, __LINE__)
130 138
131 namespace Orthanc 139 namespace Orthanc
132 { 140 {
133 namespace Logging 141 namespace Logging
134 { 142 {
135 enum InternalLevel
136 {
137 InternalLevel_ERROR,
138 InternalLevel_WARNING,
139 InternalLevel_INFO,
140 InternalLevel_TRACE
141 };
142
143 class ORTHANC_PUBLIC InternalLogger : public boost::noncopyable 143 class ORTHANC_PUBLIC InternalLogger : public boost::noncopyable
144 { 144 {
145 private: 145 private:
146 InternalLevel level_; 146 Level level_;
147 std::stringstream messageStream_; 147 std::stringstream messageStream_;
148 148
149 public: 149 public:
150 InternalLogger(InternalLevel level, 150 InternalLogger(Level level,
151 const char* file, 151 const char* file,
152 int line); 152 int line);
153 153
154 ~InternalLogger(); 154 ~InternalLogger();
155 155