diff --git a/src/Log.cpp b/src/Log.cpp index 25d702f8d0..ed47e252e0 100644 --- a/src/Log.cpp +++ b/src/Log.cpp @@ -7,10 +7,45 @@ #include "Log.h" +#include +#ifdef _WIN32 + #include +#else + #include +#endif + using namespace nt; ATOMIC_STATIC_INIT(Logger) -Logger::Logger() {} +static void def_log_func(unsigned int level, const char* file, + unsigned int line, const char* msg) { + if (level == 20) { + std::fprintf(stderr, "NT: %s\n", msg); + return; + } + + const char* levelmsg; + if (level >= 50) + levelmsg = "CRITICAL"; + else if (level >= 40) + levelmsg = "ERROR"; + else if (level >= 30) + levelmsg = "WARNING"; + else + return; +#ifdef _WIN32 + char fname[60]; + char ext[10]; + _splitpath_s(file, nullptr, 0, nullptr, 0, fname, 60, ext, 10); + std::fprintf(stderr, "NT: %s: %s (%s%s:%d)\n", levelmsg, msg, fname, ext, + line); +#else + std::fprintf(stderr, "NT: %s: %s (%s:%d)\n", levelmsg, msg, basename(file), + line); +#endif +} + +Logger::Logger() : m_func(def_log_func) {} Logger::~Logger() {} diff --git a/src/Log.h b/src/Log.h index c54a17049f..dd9e125e15 100644 --- a/src/Log.h +++ b/src/Log.h @@ -45,7 +45,7 @@ class Logger { Logger(); LogFunc m_func; - unsigned int m_min_level = 100; + unsigned int m_min_level = 20; ATOMIC_STATIC_DECL(Logger) };