Using <chrono> to measure time in the LogManager
`clock()`, which was used previously, behaves differently on various platform. So switching to this lets us use a standard part of the language which avoids this. Signed-off-by: B Horn <b@horn.uk>
This commit is contained in:
parent
d9de79abfe
commit
a1dcf7c1cf
2 changed files with 7 additions and 7 deletions
|
|
@ -3,7 +3,7 @@
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
#include <ctime>
|
#include <chrono>
|
||||||
|
|
||||||
#include "ResourceManager.h"
|
#include "ResourceManager.h"
|
||||||
|
|
||||||
|
|
@ -13,7 +13,7 @@ static const char* log_codes[] = {"FATAL:", "ERROR:", "Warning:", "Info:", "[ver
|
||||||
|
|
||||||
LogManager::LogManager()
|
LogManager::LogManager()
|
||||||
{
|
{
|
||||||
base_clock = clock();
|
base_clock = std::chrono::steady_clock::now();
|
||||||
}
|
}
|
||||||
|
|
||||||
LogManager* LogManager::get()
|
LogManager* LogManager::get()
|
||||||
|
|
@ -136,8 +136,8 @@ void LogManager::_flush()
|
||||||
if(temp_messages[msg]->level <= loglevel)
|
if(temp_messages[msg]->level <= loglevel)
|
||||||
{
|
{
|
||||||
// Put the timestamp here
|
// Put the timestamp here
|
||||||
clock_t counter = temp_messages[msg]->counted_second;
|
std::chrono::milliseconds counter = std::chrono::duration_cast<std::chrono::milliseconds>(temp_messages[msg]->counted_second);
|
||||||
log_stream << std::left << std::setw(6) << counter/ ( CLOCKS_PER_SEC / 1000 ) << "|";
|
log_stream << std::left << std::setw(6) << counter.count() << "|";
|
||||||
log_stream << std::left << std::setw(9) << log_codes[temp_messages[msg]->level];
|
log_stream << std::left << std::setw(9) << log_codes[temp_messages[msg]->level];
|
||||||
log_stream << temp_messages[msg]->buffer;
|
log_stream << temp_messages[msg]->buffer;
|
||||||
|
|
||||||
|
|
@ -202,7 +202,7 @@ void LogManager::_append(const char* filename, int line, unsigned int level, con
|
||||||
mes->level = level;
|
mes->level = level;
|
||||||
mes->filename = filename;
|
mes->filename = filename;
|
||||||
mes->line = line;
|
mes->line = line;
|
||||||
mes->counted_second = clock() - base_clock;
|
mes->counted_second = std::chrono::steady_clock::now() - base_clock;
|
||||||
|
|
||||||
/*-------------------------------------------------*\
|
/*-------------------------------------------------*\
|
||||||
| If the message is within the current verbosity, |
|
| If the message is within the current verbosity, |
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ struct LogMessage
|
||||||
unsigned int level;
|
unsigned int level;
|
||||||
const char* filename;
|
const char* filename;
|
||||||
int line;
|
int line;
|
||||||
clock_t counted_second;
|
std::chrono::duration<double> counted_second;
|
||||||
// int timestamp or float time_offset? TBD
|
// int timestamp or float time_offset? TBD
|
||||||
};
|
};
|
||||||
typedef std::shared_ptr<LogMessage> PLogMessage;
|
typedef std::shared_ptr<LogMessage> PLogMessage;
|
||||||
|
|
@ -60,7 +60,7 @@ private:
|
||||||
unsigned int verbosity = LL_WARNING;
|
unsigned int verbosity = LL_WARNING;
|
||||||
|
|
||||||
//Clock from LogManager creation
|
//Clock from LogManager creation
|
||||||
clock_t base_clock;
|
std::chrono::time_point<std::chrono::steady_clock> base_clock;
|
||||||
|
|
||||||
// A non-guarded append()
|
// A non-guarded append()
|
||||||
void _append(const char* filename, int line, unsigned int level, const char* fmt, va_list va);
|
void _append(const char* filename, int line, unsigned int level, const char* fmt, va_list va);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue