summaryrefslogtreecommitdiff
path: root/src/common/logging/text_formatter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/logging/text_formatter.cpp')
-rw-r--r--src/common/logging/text_formatter.cpp27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/common/logging/text_formatter.cpp b/src/common/logging/text_formatter.cpp
index b603ead13..88deb150e 100644
--- a/src/common/logging/text_formatter.cpp
+++ b/src/common/logging/text_formatter.cpp
@@ -14,8 +14,33 @@
14#include "common/logging/log.h" 14#include "common/logging/log.h"
15#include "common/logging/text_formatter.h" 15#include "common/logging/text_formatter.h"
16 16
17#include "common/string_util.h"
18
17namespace Log { 19namespace Log {
18 20
21// TODO(bunnei): This should be moved to a generic path manipulation library
22const char* TrimSourcePath(const char* path, const char* root) {
23 const char* p = path;
24
25 while (*p != '\0') {
26 const char* next_slash = p;
27 while (*next_slash != '\0' && *next_slash != '/' && *next_slash != '\\') {
28 ++next_slash;
29 }
30
31 bool is_src = Common::ComparePartialString(p, next_slash, root);
32 p = next_slash;
33
34 if (*p != '\0') {
35 ++p;
36 }
37 if (is_src) {
38 path = p;
39 }
40 }
41 return path;
42}
43
19void FormatLogMessage(const Entry& entry, char* out_text, size_t text_len) { 44void FormatLogMessage(const Entry& entry, char* out_text, size_t text_len) {
20 unsigned int time_seconds = static_cast<unsigned int>(entry.timestamp.count() / 1000000); 45 unsigned int time_seconds = static_cast<unsigned int>(entry.timestamp.count() / 1000000);
21 unsigned int time_fractional = static_cast<unsigned int>(entry.timestamp.count() % 1000000); 46 unsigned int time_fractional = static_cast<unsigned int>(entry.timestamp.count() % 1000000);
@@ -25,7 +50,7 @@ void FormatLogMessage(const Entry& entry, char* out_text, size_t text_len) {
25 50
26 snprintf(out_text, text_len, "[%4u.%06u] %s <%s> %s: %s", 51 snprintf(out_text, text_len, "[%4u.%06u] %s <%s> %s: %s",
27 time_seconds, time_fractional, class_name, level_name, 52 time_seconds, time_fractional, class_name, level_name,
28 entry.location.c_str(), entry.message.c_str()); 53 TrimSourcePath(entry.location.c_str()), entry.message.c_str());
29} 54}
30 55
31static void ChangeConsoleColor(Level level) { 56static void ChangeConsoleColor(Level level) {