9
9
namespace pcpp
10
10
{
11
11
12
+ namespace
13
+ {
14
+ // / Default log printer function that prints to std::cerr.
15
+ void printToCerr (LogLevel logLevel, const std::string& logMessage, const std::string& file,
16
+ const std::string& method, const int line)
17
+ {
18
+ // This mutex is used to prevent multiple threads from writing to the console at the same time.
19
+ static std::mutex logMutex;
20
+
21
+ std::ostringstream sstream;
22
+ sstream << file << " : " << method << " :" << line;
23
+
24
+ std::unique_lock<std::mutex> const lock (logMutex);
25
+ std::cerr << std::left << " [" << std::setw (5 ) << Logger::logLevelAsString (logLevel) << " : " << std::setw (45 )
26
+ << sstream.str () << " ] " << logMessage << std::endl;
27
+ }
28
+ } // namespace
29
+
12
30
// Alpine Linux incorrectly declares strerror_r
13
31
// https://stackoverflow.com/questions/41953104/strerror-r-is-incorrectly-declared-on-alpine-linux
14
32
char * checkError (int /* unused*/ , char * buffer, int /* unused*/ )
@@ -32,7 +50,7 @@ namespace pcpp
32
50
#endif
33
51
}
34
52
35
- Logger::Logger () : m_LogsEnabled(true ), m_LogPrinter(&defaultLogPrinter )
53
+ Logger::Logger () : m_LogsEnabled(true ), m_LogPrinter(&printToCerr )
36
54
{
37
55
m_LastError.reserve (200 );
38
56
m_LogModulesArray.fill (LogLevel::Info);
@@ -55,6 +73,11 @@ namespace pcpp
55
73
}
56
74
}
57
75
76
+ void Logger::resetLogPrinter ()
77
+ {
78
+ m_LogPrinter = &printToCerr; // Reset to the default log printer
79
+ }
80
+
58
81
std::unique_ptr<internal::LogContext> Logger::createLogContext ()
59
82
{
60
83
return createLogContext (LogLevel::Info, {}); // call the other createLogContext method
@@ -93,18 +116,4 @@ namespace pcpp
93
116
m_LogPrinter (logLevel, message, source.file , source.function , source.line );
94
117
}
95
118
}
96
-
97
- void Logger::defaultLogPrinter (LogLevel logLevel, const std::string& logMessage, const std::string& file,
98
- const std::string& method, const int line)
99
- {
100
- // This mutex is used to prevent multiple threads from writing to the console at the same time.
101
- static std::mutex logMutex;
102
-
103
- std::ostringstream sstream;
104
- sstream << file << " : " << method << " :" << line;
105
-
106
- std::unique_lock<std::mutex> const lock (logMutex);
107
- std::cerr << std::left << " [" << std::setw (5 ) << Logger::logLevelAsString (logLevel) << " : " << std::setw (45 )
108
- << sstream.str () << " ] " << logMessage << std::endl;
109
- }
110
119
} // namespace pcpp
0 commit comments