Skip to content

Commit 5391ff8

Browse files
ostropikOstropikan-tao
authored
TRNANTOR_LOG_COMPACT - compact logs without source code details(line, file name etc) (#242)
Co-authored-by: Ostropik <Dmytro.OSTROPITSKYI@ingenico.com> Co-authored-by: antao <antao2002@gmail.com>
1 parent b7ae847 commit 5391ff8

File tree

3 files changed

+68
-4
lines changed

3 files changed

+68
-4
lines changed

trantor/tests/LoggerTest.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
int main()
55
{
66
int i;
7+
LOG_COMPACT_DEBUG << "Hello, world!";
78
LOG_DEBUG << (float)3.14;
89
LOG_DEBUG << (const char)'8';
910
LOG_DEBUG << &i;

trantor/utils/Logger.cc

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ inline LogStream &operator<<(LogStream &s, const Logger::SourceFile &v)
6767
s.append(v.data_, v.size_);
6868
return s;
6969
}
70+
7071
} // namespace trantor
7172
using namespace trantor;
7273

@@ -174,6 +175,7 @@ static const char *logLevelStr[Logger::LogLevel::kNumberOfLogLevels] = {
174175
" ERROR ",
175176
" FATAL ",
176177
};
178+
177179
Logger::Logger(SourceFile file, int line)
178180
: sourceFile_(file), fileLine_(line), level_(kInfo)
179181
{
@@ -202,6 +204,28 @@ Logger::Logger(SourceFile file, int line, bool)
202204
logStream_ << strerror_tl(errno) << " (errno=" << errno << ") ";
203205
}
204206
}
207+
208+
// LOG_COMPACT
209+
Logger::Logger() : level_(kInfo)
210+
{
211+
formatTime();
212+
logStream_ << T(logLevelStr[level_], 7);
213+
}
214+
Logger::Logger(LogLevel level) : level_(level)
215+
{
216+
formatTime();
217+
logStream_ << T(logLevelStr[level_], 7);
218+
}
219+
Logger::Logger(bool) : level_(kFatal)
220+
{
221+
formatTime();
222+
logStream_ << T(logLevelStr[level_], 7);
223+
if (errno != 0)
224+
{
225+
logStream_ << strerror_tl(errno) << " (errno=" << errno << ") ";
226+
}
227+
}
228+
205229
RawLogger::~RawLogger()
206230
{
207231
if (index_ < 0)
@@ -221,7 +245,10 @@ RawLogger::~RawLogger()
221245
}
222246
Logger::~Logger()
223247
{
224-
logStream_ << T(" - ", 3) << sourceFile_ << ':' << fileLine_ << '\n';
248+
if (sourceFile_.data_)
249+
logStream_ << T(" - ", 3) << sourceFile_ << ':' << fileLine_ << '\n';
250+
else
251+
logStream_ << '\n';
225252
if (index_ < 0)
226253
{
227254
auto &oFunc = Logger::outputFunc_();
@@ -240,8 +267,6 @@ Logger::~Logger()
240267
if (level_ >= kError)
241268
Logger::flushFunc_(index_)();
242269
}
243-
244-
// logStream_.resetBuffer();
245270
}
246271
LogStream &Logger::stream()
247272
{

trantor/utils/Logger.h

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,13 @@ class TRANTOR_EXPORT Logger : public NonCopyable
6868
}
6969
}
7070

71-
explicit SourceFile(const char *filename) : data_(filename)
71+
explicit SourceFile(const char *filename = nullptr) : data_(filename)
7272
{
73+
if (!filename)
74+
{
75+
size_ = 0;
76+
return;
77+
}
7378
#ifndef _MSC_VER
7479
const char *slash = strrchr(filename, '/');
7580
#else
@@ -89,6 +94,12 @@ class TRANTOR_EXPORT Logger : public NonCopyable
8994
Logger(SourceFile file, int line, LogLevel level);
9095
Logger(SourceFile file, int line, bool isSysErr);
9196
Logger(SourceFile file, int line, LogLevel level, const char *func);
97+
98+
// LOG_COMPACT only <time><ThreadID><Level>
99+
Logger();
100+
Logger(LogLevel level);
101+
Logger(bool isSysErr);
102+
92103
~Logger();
93104
Logger &setIndex(int index)
94105
{
@@ -304,6 +315,33 @@ class TRANTOR_EXPORT RawLogger : public NonCopyable
304315
#define LOG_SYSERR_TO(index) \
305316
trantor::Logger(__FILE__, __LINE__, true).setIndex(index).stream()
306317

318+
// LOG_COMPACT_... begin block
319+
#define LOG_COMPACT_DEBUG \
320+
TRANTOR_IF_(trantor::Logger::logLevel() <= trantor::Logger::kDebug) \
321+
trantor::Logger(trantor::Logger::kDebug).stream()
322+
#define LOG_COMPACT_DEBUG_TO(index) \
323+
TRANTOR_IF_(trantor::Logger::logLevel() <= trantor::Logger::kDebug) \
324+
trantor::Logger(trantor::Logger::kDebug).setIndex(index).stream()
325+
#define LOG_COMPACT_INFO \
326+
TRANTOR_IF_(trantor::Logger::logLevel() <= trantor::Logger::kInfo) \
327+
trantor::Logger().stream()
328+
#define LOG_COMPACT_INFO_TO(index) \
329+
TRANTOR_IF_(trantor::Logger::logLevel() <= trantor::Logger::kInfo) \
330+
trantor::Logger().setIndex(index).stream()
331+
#define LOG_COMPACT_WARN trantor::Logger(trantor::Logger::kWarn).stream()
332+
#define LOG_COMPACT_WARN_TO(index) \
333+
trantor::Logger(trantor::Logger::kWarn).setIndex(index).stream()
334+
#define LOG_COMPACT_ERROR trantor::Logger(trantor::Logger::kError).stream()
335+
#define LOG_COMPACT_ERROR_TO(index) \
336+
trantor::Logger(trantor::Logger::kError).setIndex(index).stream()
337+
#define LOG_COMPACT_FATAL trantor::Logger(trantor::Logger::kFatal).stream()
338+
#define LOG_COMPACT_FATAL_TO(index) \
339+
trantor::Logger(trantor::Logger::kFatal).setIndex(index).stream()
340+
#define LOG_COMPACT_SYSERR trantor::Logger(true).stream()
341+
#define LOG_COMPACT_SYSERR_TO(index) \
342+
trantor::Logger(true).setIndex(index).stream()
343+
// LOG_COMPACT_... end block
344+
307345
#define LOG_RAW trantor::RawLogger().stream()
308346
#define LOG_RAW_TO(index) trantor::RawLogger().setIndex(index).stream()
309347

0 commit comments

Comments
 (0)