Added color output, added dependency on libscterm

This commit is contained in:
Bob Polis
2023-08-08 12:35:37 +02:00
parent fc75a9a6f3
commit 9925f44eea
3 changed files with 43 additions and 14 deletions

View File

@ -9,18 +9,23 @@ using namespace sc;
logger::logger(const std::string& name, loglevel level)
: _level(level), _name(name) {}
void logger::msg(loglevel level, const char* file, int line, const char* func) {
void logger::msg(loglevel level, const sc::io::trgb* color,
const char* file, int line, const char* func) {
if (level >= _level) {
if (_topcall) {
write_prefix(level, file, line, func);
write_prefix(level, color, file, line, func);
} else {
_topcall = true;
}
std::cerr << '\n';
if (color) {
std::cerr << sc::io::reset;
}
}
}
void logger::write_prefix(loglevel level, const char* file, int line, const char* func) {
void logger::write_prefix(loglevel level, const sc::io::trgb* color,
const char* file, int line, const char* func) {
// retrieve accurate time for milliseconds display
struct timeval secs;
(void)::gettimeofday(&secs, nullptr);
@ -29,6 +34,10 @@ void logger::write_prefix(loglevel level, const char* file, int line, const char
char dtstamp[20];
std::strftime(dtstamp, 20, "%F %T", std::localtime(&secs.tv_sec));
if (color) {
sc::io::rgbf col {sc::io::rgbf(const_cast<sc::io::trgb&>(*color))};
std::cerr << col;
}
std::cerr << dtstamp << "." << std::setfill('0') << std::setw(6) << secs.tv_usec << " ";
std::cerr << _name << "[" << ::getpid() << "] ";
std::cerr << file << ":" << line << " " << func << "() ";