Skip to content

Commit 70fbb64

Browse files
Add timestamp to default logging (#1043)
Add timestamp to default logging including miliseconds. Minor code style changes in MessageFormatter.cpp Resolves: OLPEDGE-2239 Signed-off-by: Serhii Lozynskyi <ext-serhii.lozynskyi@here.com>
1 parent 0d4f7dd commit 70fbb64

File tree

3 files changed

+67
-30
lines changed

3 files changed

+67
-30
lines changed

olp-cpp-sdk-core/src/logging/MessageFormatter.cpp

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,25 @@ static const char* limitString(std::string& tempStr, const char* str,
3232
if (limit < 0) {
3333
int length = static_cast<int>(std::strlen(str));
3434
int start = std::max(length + limit, 0);
35-
if (start == 0) return str;
35+
if (start == 0) {
36+
return str;
37+
}
3638

3739
if (length - start > 3) {
3840
tempStr = "...";
3941
start += 3;
40-
} else
42+
} else {
4143
tempStr.clear();
44+
}
4245

4346
tempStr.append(str, start, length - start);
4447
return tempStr.c_str();
4548
} else if (limit > 0) {
4649
std::size_t strLen = std::strlen(str);
4750
std::size_t finalLength = std::min(strLen, static_cast<std::size_t>(limit));
48-
if (finalLength == strLen) return str;
51+
if (finalLength == strLen) {
52+
return str;
53+
}
4954

5055
bool addElipses = false;
5156
if (finalLength > 3) {
@@ -54,10 +59,13 @@ static const char* limitString(std::string& tempStr, const char* str,
5459
}
5560

5661
tempStr.assign(str, finalLength);
57-
if (addElipses) tempStr += "...";
62+
if (addElipses) {
63+
tempStr += "...";
64+
}
5865
return tempStr.c_str();
59-
} else
66+
} else {
6067
return str;
68+
}
6169
}
6270

6371
MessageFormatter::Element::Element(ElementType type_) : type(type_), limit(0) {
@@ -95,9 +103,10 @@ const MessageFormatter::LevelNameMap& MessageFormatter::defaultLevelNameMap() {
95103
}
96104

97105
MessageFormatter MessageFormatter::createDefault() {
98-
return MessageFormatter({Element(ElementType::Level, "%s "),
99-
Element(ElementType::Tag, "%s - "),
100-
Element(ElementType::Message)});
106+
return MessageFormatter(
107+
{Element(ElementType::Time, "%T"), Element(ElementType::TimeMs, ".%.3u "),
108+
Element(ElementType::Level, "%s "), Element(ElementType::Tag, "%s - "),
109+
Element(ElementType::Message)});
101110
}
102111

103112
std::string MessageFormatter::format(const LogMessage& message) const {
@@ -118,7 +127,9 @@ std::string MessageFormatter::format(const LogMessage& message) const {
118127
m_levelNameMap[static_cast<std::size_t>(message.level)].c_str());
119128
break;
120129
case ElementType::Tag:
121-
if (!message.tag || !*message.tag) continue;
130+
if (!message.tag || !*message.tag) {
131+
continue;
132+
}
122133

123134
curElement = curElementBuffer.format(
124135
element.format.c_str(),

olp-cpp-sdk-core/tests/logging/FileAppenderTest.cpp

Lines changed: 35 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -36,25 +36,33 @@
3636

3737
namespace {
3838

39-
using namespace olp::logging;
40-
using namespace testing;
39+
namespace logging = olp::logging;
4140

4241
TEST(FileAppenderTest, Default) {
4342
{
43+
logging::MessageFormatter formatter(
44+
{logging::MessageFormatter::Element(
45+
logging::MessageFormatter::ElementType::Level, "%s "),
46+
logging::MessageFormatter::Element(
47+
logging::MessageFormatter::ElementType::Tag, "%s - "),
48+
logging::MessageFormatter::Element(
49+
logging::MessageFormatter::ElementType::Message)});
50+
4451
SCOPED_TRACE("Create appender");
45-
auto appender = std::make_shared<FileAppender>("test.txt");
52+
auto appender =
53+
std::make_shared<logging::FileAppender>("test.txt", false, formatter);
4654
ASSERT_TRUE(appender->isValid());
4755
EXPECT_EQ("test.txt", appender->getFileName());
4856

49-
Configuration configuration{};
57+
logging::Configuration configuration{};
5058
configuration.addAppender(appender);
51-
Log::configure(configuration);
52-
Log::setLevel(Level::Info);
59+
logging::Log::configure(configuration);
60+
logging::Log::setLevel(logging::Level::Info);
5361

5462
OLP_SDK_LOG_INFO("test", "test 1");
5563
OLP_SDK_LOG_WARNING("test", "test 2");
5664

57-
Log::configure(Configuration::createDefault());
65+
logging::Log::configure(logging::Configuration::createDefault());
5866
}
5967

6068
{
@@ -82,42 +90,52 @@ TEST(FileAppenderTest, Default) {
8290
}
8391

8492
TEST(FileAppenderTest, NonExistingFile) {
85-
auto appender = std::make_shared<FileAppender>("asdf/foo/bar");
93+
auto appender = std::make_shared<logging::FileAppender>("asdf/foo/bar");
8694
EXPECT_FALSE(appender->isValid());
8795
}
8896

8997
TEST(FileAppenderTest, Append) {
98+
logging::MessageFormatter formatter(
99+
{logging::MessageFormatter::Element(
100+
logging::MessageFormatter::ElementType::Level, "%s "),
101+
logging::MessageFormatter::Element(
102+
logging::MessageFormatter::ElementType::Tag, "%s - "),
103+
logging::MessageFormatter::Element(
104+
logging::MessageFormatter::ElementType::Message)});
105+
90106
{
91107
SCOPED_TRACE("Create appender");
92-
auto appender = std::make_shared<FileAppender>("test.txt", true);
108+
auto appender =
109+
std::make_shared<logging::FileAppender>("test.txt", true, formatter);
93110
ASSERT_TRUE(appender->isValid());
94111
EXPECT_EQ("test.txt", appender->getFileName());
95112
EXPECT_TRUE(appender->getAppendFile());
96113

97-
Configuration configuration{};
114+
logging::Configuration configuration{};
98115
configuration.addAppender(appender);
99-
Log::configure(configuration);
100-
Log::setLevel(Level::Info);
116+
logging::Log::configure(configuration);
117+
logging::Log::setLevel(logging::Level::Info);
101118

102119
OLP_SDK_LOG_INFO("test", "test 1");
103120
OLP_SDK_LOG_WARNING("test", "test 2");
104121

105-
Log::configure(Configuration::createDefault());
122+
logging::Log::configure(logging::Configuration::createDefault());
106123
}
107124

108125
{
109126
SCOPED_TRACE("Re-create appender");
110-
auto appender = std::make_shared<FileAppender>("test.txt", true);
127+
auto appender =
128+
std::make_shared<logging::FileAppender>("test.txt", true, formatter);
111129
EXPECT_TRUE(appender->isValid());
112130

113-
Configuration configuration{};
131+
logging::Configuration configuration{};
114132
configuration.addAppender(appender);
115-
Log::configure(configuration);
133+
logging::Log::configure(configuration);
116134

117135
OLP_SDK_LOG_ERROR("test", "test 3");
118136
OLP_SDK_LOG_FATAL("test", "test 4");
119137

120-
Log::configure(Configuration::createDefault());
138+
logging::Log::configure(logging::Configuration::createDefault());
121139
}
122140

123141
{

olp-cpp-sdk-core/tests/logging/LogTest.cpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@
3131

3232
namespace {
3333

34-
using namespace testing;
35-
3634
TEST(LogTest, Levels) {
3735
EXPECT_TRUE(olp::logging::Log::configure(
3836
olp::logging::Configuration::createDefault()));
@@ -126,8 +124,18 @@ TEST(LogTest, DifferentLevelsForDifferentAppenders) {
126124
}
127125

128126
TEST(LogTest, DifferentLevelsForConsoleAndFileLogging) {
129-
auto console_appender = std::make_shared<olp::logging::ConsoleAppender>();
130-
auto file_appender = std::make_shared<olp::logging::FileAppender>("test.txt");
127+
olp::logging::MessageFormatter formatter(
128+
{olp::logging::MessageFormatter::Element(
129+
olp::logging::MessageFormatter::ElementType::Level, "%s "),
130+
olp::logging::MessageFormatter::Element(
131+
olp::logging::MessageFormatter::ElementType::Tag, "%s - "),
132+
olp::logging::MessageFormatter::Element(
133+
olp::logging::MessageFormatter::ElementType::Message)});
134+
135+
auto console_appender =
136+
std::make_shared<olp::logging::ConsoleAppender>(formatter);
137+
auto file_appender = std::make_shared<olp::logging::FileAppender>(
138+
"test.txt", false, formatter);
131139

132140
ASSERT_TRUE(file_appender->isValid());
133141
EXPECT_EQ("test.txt", file_appender->getFileName());

0 commit comments

Comments
 (0)