Skip to content

Commit 7a8b476

Browse files
authored
The fix (#609)
1 parent 290f455 commit 7a8b476

3 files changed

Lines changed: 64 additions & 20 deletions

File tree

include/phasar/Utils/Logger.h

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -105,54 +105,66 @@ class Logger final {
105105
computation; \
106106
}
107107

108-
#define IS_LOG_ENABLED Logger::isLoggingEnabled()
108+
#define IS_LOG_ENABLED ::psr::Logger::isLoggingEnabled()
109109

110110
#define IF_LOG_ENABLED(computation) \
111-
IF_LOG_ENABLED_BOOL(Logger::isLoggingEnabled(), computation)
111+
IF_LOG_ENABLED_BOOL(::psr::Logger::isLoggingEnabled(), computation)
112112

113113
#define PHASAR_LOG_LEVEL(level, message) \
114114
IF_LOG_ENABLED_BOOL( \
115-
Logger::isLoggingEnabled() && (level) >= Logger::getLoggerFilterLevel(), \
115+
::psr::Logger::isLoggingEnabled() && \
116+
(::psr::SeverityLevel::level) >= \
117+
::psr::Logger::getLoggerFilterLevel(), \
116118
do { \
117-
auto &S = Logger::getLogStream(level, std::nullopt); \
118-
Logger::addLinePrefix(S, level, std::nullopt); \
119+
auto &Stream = ::psr::Logger::getLogStream( \
120+
::psr::SeverityLevel::level, std::nullopt); \
121+
::psr::Logger::addLinePrefix(Stream, ::psr::SeverityLevel::level, \
122+
std::nullopt); \
119123
/* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
120-
S << message << '\n'; \
124+
Stream << message << '\n'; \
121125
} while (false);)
122126

123127
#define PHASAR_LOG(message) PHASAR_LOG_LEVEL(DEBUG, message)
124128

125129
#define PHASAR_LOG_LEVEL_CAT(level, cat, message) \
126130
IF_LOG_ENABLED_BOOL( \
127-
Logger::isLoggingEnabled() && \
128-
(level) >= Logger::getLoggerFilterLevel() && \
129-
Logger::logCategory(cat, level), \
131+
::psr::Logger::isLoggingEnabled() && \
132+
(::psr::SeverityLevel::level) >= \
133+
::psr::Logger::getLoggerFilterLevel() && \
134+
::psr::Logger::logCategory(cat, ::psr::SeverityLevel::level), \
130135
do { \
131-
auto &S = Logger::getLogStream(level, cat); \
132-
Logger::addLinePrefix(S, level, cat); \
136+
auto &Stream = \
137+
::psr::Logger::getLogStream(::psr::SeverityLevel::level, cat); \
138+
::psr::Logger::addLinePrefix(Stream, ::psr::SeverityLevel::level, \
139+
cat); \
133140
/* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
134-
S << message << '\n'; \
141+
Stream << message << '\n'; \
135142
} while (false);)
136143

137144
#define PHASAR_LOG_CAT(cat, message) \
138145
IF_LOG_ENABLED_BOOL( \
139-
Logger::isLoggingEnabled() && Logger::logCategory(cat, std::nullopt), \
146+
::psr::Logger::isLoggingEnabled() && \
147+
::psr::Logger::logCategory(cat, std::nullopt), \
140148
do { \
141-
auto &S = Logger::getLogStream(std::nullopt, cat); \
142-
Logger::addLinePrefix(S, std::nullopt, cat); \
149+
auto &Stream = ::psr::Logger::getLogStream(std::nullopt, cat); \
150+
::psr::Logger::addLinePrefix(Stream, std::nullopt, cat); \
143151
/* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
144-
S << message << '\n'; \
152+
Stream << message << '\n'; \
145153
} while (false);)
146154

147155
#else
148156
#define IF_LOG_ENABLED_BOOL(condition, computation) \
149157
{}
150158
#define IF_LOG_ENABLED(computation) \
151159
{}
152-
#define PHASAR_LOG(computation) ((void)0)
153-
#define PHASAR_LOG_CAT(cat, message) ((void)0)
154-
#define PHASAR_LOG_LEVEL_CAT(level, cat, message) ((void)0)
155-
#define PHASAR_LOG_LEVEL(level, message) ((void)0)
160+
#define PHASAR_LOG(computation) \
161+
{}
162+
#define PHASAR_LOG_CAT(cat, message) \
163+
{}
164+
#define PHASAR_LOG_LEVEL_CAT(level, cat, message) \
165+
{}
166+
#define PHASAR_LOG_LEVEL(level, message) \
167+
{}
156168
#define IS_LOG_ENABLED false
157169
#endif
158170

unittests/Utils/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ set(UtilsSources
88
StableVectorTest.cpp
99
)
1010

11+
if(PHASAR_ENABLE_DYNAMIC_LOG)
12+
list(APPEND UtilsSources LoggerTest.cpp)
13+
endif()
14+
1115
foreach(TEST_SRC ${UtilsSources})
1216
add_phasar_unittest(${TEST_SRC})
1317
endforeach(TEST_SRC)

unittests/Utils/LoggerTest.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#include "phasar/Utils/Logger.h"
2+
3+
#include "gtest/gtest.h"
4+
5+
TEST(LoggerTest, BasicWithinPsr) {
6+
using namespace psr;
7+
Logger::initializeStderrLogger(SeverityLevel::INFO);
8+
Logger::initializeStderrLogger(SeverityLevel::DEBUG, "LLVMAliasSet");
9+
PHASAR_LOG("This should not be shown");
10+
PHASAR_LOG_LEVEL(INFO, "Basic category-less message");
11+
PHASAR_LOG_LEVEL_CAT(DEBUG, "LLVMAliasSet",
12+
"Some message specific to LLVMAliasSet");
13+
}
14+
15+
TEST(LoggerTest, BasicOutsidePsr) {
16+
psr::Logger::initializeStderrLogger(psr::SeverityLevel::INFO);
17+
psr::Logger::initializeStderrLogger(psr::SeverityLevel::DEBUG,
18+
"LLVMAliasSet");
19+
PHASAR_LOG("This should not be shown");
20+
PHASAR_LOG_LEVEL(INFO, "Basic category-less message");
21+
PHASAR_LOG_LEVEL_CAT(DEBUG, "LLVMAliasSet",
22+
"Some message specific to LLVMAliasSet");
23+
}
24+
25+
int main(int Argc, char **Argv) {
26+
::testing::InitGoogleTest(&Argc, Argv);
27+
return RUN_ALL_TESTS();
28+
}

0 commit comments

Comments
 (0)