mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-01-31 00:34:20 +00:00
* logger: print also thread id
This commit is contained in:
parent
38103aaac5
commit
1fae3baaa3
16
Log.cpp
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
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…
x
Reference in New Issue
Block a user