Browse Source

* logger: print also thread id

pull/448/head
hagen 9 years ago
parent
commit
1fae3baaa3
  1. 16
      Log.cpp
  2. 4
      Log.h

16
Log.cpp

@ -92,22 +92,32 @@ namespace log {
*/ */
void Log::Process() { void Log::Process() {
std::unique_lock<std::mutex> l(m_OutputLock); std::unique_lock<std::mutex> l(m_OutputLock);
std::hash<std::thread::id> hasher;
unsigned short short_tid;
while (1) { while (1) {
auto msg = m_Queue.GetNextWithTimeout (1); auto msg = m_Queue.GetNextWithTimeout (1);
if (!msg) if (!msg)
break; break;
short_tid = (short) (hasher(msg->tid) % 1000);
switch (m_Destination) { switch (m_Destination) {
#ifndef _WIN32 #ifndef _WIN32
case eLogSyslog: case eLogSyslog:
syslog(GetSyslogPrio(msg->level), "%s", msg->text.c_str()); syslog(GetSyslogPrio(msg->level), "[%03u] %s", short_tid, msg->text.c_str());
break; break;
#endif #endif
case eLogFile: case eLogFile:
case eLogStream: case eLogStream:
*m_LogStream << TimeAsString(msg->timestamp) << "/" << g_LogLevelStr[msg->level] << " - " << msg->text << std::endl; *m_LogStream << TimeAsString(msg->timestamp)
<< "@" << short_tid
<< "/" << g_LogLevelStr[msg->level]
<< " - " << msg->text << std::endl;
break; break;
case eLogStdout:
default: default:
std::cout << TimeAsString(msg->timestamp) << "/" << g_LogLevelStr[msg->level] << " - " << msg->text << std::endl; std::cout << TimeAsString(msg->timestamp)
<< "@" << short_tid
<< "/" << g_LogLevelStr[msg->level]
<< " - " << msg->text << std::endl;
break; break;
} // switch } // switch
} // while } // while

4
Log.h

@ -138,8 +138,9 @@ namespace log {
std::time_t timestamp; std::time_t timestamp;
std::string text; /**< message text as single string */ std::string text; /**< message text as single string */
LogLevel level; /**< message level */ LogLevel level; /**< message level */
std::thread::id tid; /**< id of thread that generated message */
LogMsg (LogLevel lvl, std::time_t ts, const std::string & txt): timestamp(ts), text(txt), level(lvl) {}; LogMsg (LogLevel lvl, std::time_t ts, const std::string & txt): timestamp(ts), text(txt), level(lvl), tid(0) {};
}; };
Log & Logger(); Log & Logger();
@ -178,6 +179,7 @@ void LogPrint (LogLevel level, TArgs... args)
LogPrint (ss, args ...); LogPrint (ss, args ...);
auto msg = std::make_shared<i2p::log::LogMsg>(level, std::time(nullptr), ss.str()); auto msg = std::make_shared<i2p::log::LogMsg>(level, std::time(nullptr), ss.str());
msg->tid = std::this_thread::get_id();
log.Append(msg); log.Append(msg);
} }

Loading…
Cancel
Save