/src/PcapPlusPlus/Common++/src/Logger.cpp
Line | Count | Source (jump to first uncovered line) |
1 | | #include <sstream> |
2 | | #include "Logger.h" |
3 | | |
4 | | namespace pcpp |
5 | | { |
6 | | |
7 | | Logger::Logger() : m_LogsEnabled(true), m_LogPrinter(&defaultLogPrinter) |
8 | 1 | { |
9 | 1 | m_LastError.reserve(200); |
10 | 56 | for (int i = 0; i<NumOfLogModules; i++) |
11 | 55 | m_LogModulesArray[i] = Info; |
12 | 1 | } |
13 | | |
14 | | std::string Logger::logLevelAsString(LogLevel logLevel) |
15 | 9.84k | { |
16 | 9.84k | switch (logLevel) |
17 | 9.84k | { |
18 | 9.84k | case Logger::Error: |
19 | 9.84k | return "ERROR"; |
20 | 0 | case Logger::Info: |
21 | 0 | return "INFO"; |
22 | 0 | default: |
23 | 0 | return "DEBUG"; |
24 | 9.84k | } |
25 | 9.84k | } |
26 | | |
27 | | void Logger::defaultLogPrinter(LogLevel logLevel, const std::string& logMessage, const std::string& file, const std::string& method, const int line) |
28 | 9.84k | { |
29 | 9.84k | std::ostringstream sstream; |
30 | 9.84k | sstream << file << ": " << method << ":" << line; |
31 | 9.84k | std::cout << std::left |
32 | 9.84k | << "[" |
33 | 9.84k | << std::setw(5) << Logger::logLevelAsString(logLevel) << ": " |
34 | 9.84k | << std::setw(45) << sstream.str() |
35 | 9.84k | << "] " |
36 | 9.84k | << logMessage << std::endl; |
37 | 9.84k | } |
38 | | |
39 | | std::ostringstream * Logger::internalCreateLogStream() |
40 | 9.84k | { |
41 | 9.84k | return new std::ostringstream (); |
42 | 9.84k | } |
43 | | |
44 | | void Logger::internalPrintLogMessage(std::ostringstream* logStream, Logger::LogLevel logLevel, const char* file, const char* method, int line) |
45 | 9.84k | { |
46 | 9.84k | std::string logMessage = logStream->str(); |
47 | 9.84k | delete logStream; |
48 | 9.84k | if (logLevel == Logger::Error) |
49 | 9.84k | { |
50 | 9.84k | m_LastError = logMessage; |
51 | 9.84k | } |
52 | 9.84k | if (m_LogsEnabled) |
53 | 9.84k | { |
54 | 9.84k | m_LogPrinter(logLevel, logMessage, file, method, line); |
55 | 9.84k | } |
56 | 9.84k | } |
57 | | |
58 | | } // namespace pcpp |