From 7e3c53b9d39bbbd9b7d3f8cfcfe1d6c72fcd4992 Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Tue, 6 Dec 2022 23:32:10 +0000 Subject: [PATCH] core(logger): strip path prefix --- modules/core/src/logger.cpp | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/modules/core/src/logger.cpp b/modules/core/src/logger.cpp index f395571e80..7e3f8aa29d 100644 --- a/modules/core/src/logger.cpp +++ b/modules/core/src/logger.cpp @@ -233,24 +233,42 @@ void writeLogMessage(LogLevel logLevel, const char* message) (*out) << std::flush; } +static const char* stripSourceFilePathPrefix(const char* file) +{ + CV_Assert(file); + const char* pos = file; + const char* strip_pos = NULL; + char ch = 0; + while ((ch = pos[0]) != 0) + { + ++pos; + if (ch == '/' || ch == '\\') + strip_pos = pos; + } + if (strip_pos == NULL || strip_pos == pos/*eos*/) + return file; + return strip_pos; +} + void writeLogMessageEx(LogLevel logLevel, const char* tag, const char* file, int line, const char* func, const char* message) { std::ostringstream strm; if (tag) { - strm << tag << " "; + strm << tag << ' '; } if (file) { - strm << file << " "; - } - if (line > 0) - { - strm << "(" << line << ") "; + strm << stripSourceFilePathPrefix(file); + if (line > 0) + { + strm << ':' << line; + } + strm << ' '; } if (func) { - strm << func << " "; + strm << func << ' '; } strm << message; writeLogMessage(logLevel, strm.str().c_str()); -- GitLab