diff --git a/CommonLibs/Logger.cpp b/CommonLibs/Logger.cpp index ac3de42d..393d882c 100644 --- a/CommonLibs/Logger.cpp +++ b/CommonLibs/Logger.cpp @@ -50,7 +50,7 @@ Log::~Log() ScopedLock lock(gLogToLock); // The COUT() macro prevents messages from stomping each other but adds uninteresting thread numbers, // so just use std::cout. - LOGP(mCategory, mPriority, fmt, mStream.str().c_str()); + LOGPSRC(mCategory, mPriority, filename, line, fmt, mStream.str().c_str()); } ostringstream& Log::get() diff --git a/CommonLibs/Logger.h b/CommonLibs/Logger.h index 00efcd79..5b0b05ca 100644 --- a/CommonLibs/Logger.h +++ b/CommonLibs/Logger.h @@ -48,10 +48,10 @@ extern "C" { #endif #define LOG(level) \ - Log(DMAIN, LOGL_##level).get() << "[tid=" << pthread_self() << "] " + Log(DMAIN, LOGL_##level, __BASE_FILE__, __LINE__).get() << "[tid=" << pthread_self() << "] " #define LOGC(category, level) \ - Log(category, LOGL_##level).get() << "[tid=" << pthread_self() << "] " + Log(category, LOGL_##level, __BASE_FILE__, __LINE__).get() << "[tid=" << pthread_self() << "] " /** A C++ stream-based thread-safe logger. @@ -67,11 +67,14 @@ class Log { std::ostringstream mStream; ///< This is where we buffer up the log entry. int mCategory; ///< Priority of current report. int mPriority; ///< Category of current report. + const char *filename; ///< Source File Name of current report. + int line; ///< Line number in source file of current report. public: - Log(int wCategory, int wPriority) - : mCategory(wCategory), mPriority(wPriority) + Log(int wCategory, int wPriority, const char* filename, int line) + : mCategory(wCategory), mPriority(wPriority), + filename(filename), line(line) { } // Most of the work is in the destructor. diff --git a/tests/CommonLibs/LogTest.cpp b/tests/CommonLibs/LogTest.cpp index 5167a627..5e51ce7a 100644 --- a/tests/CommonLibs/LogTest.cpp +++ b/tests/CommonLibs/LogTest.cpp @@ -61,9 +61,9 @@ int main(int argc, char *argv[]) log_set_print_filename(osmo_stderr_target, 0); log_set_print_level(osmo_stderr_target, 1); - Log(MYCAT, LOGL_FATAL).get() << "testing the logger."; - Log(MYCAT, LOGL_ERROR).get() << "testing the logger."; - Log(MYCAT, LOGL_NOTICE).get() << "testing the logger."; - Log(MYCAT, LOGL_INFO).get() << "testing the logger."; - Log(MYCAT, LOGL_DEBUG).get() << "testing the logger."; + Log(MYCAT, LOGL_FATAL, __BASE_FILE__, __LINE__).get() << "testing the logger."; + Log(MYCAT, LOGL_ERROR, __BASE_FILE__, __LINE__).get() << "testing the logger."; + Log(MYCAT, LOGL_NOTICE, __BASE_FILE__, __LINE__).get() << "testing the logger."; + Log(MYCAT, LOGL_INFO, __BASE_FILE__, __LINE__).get() << "testing the logger."; + Log(MYCAT, LOGL_DEBUG, __BASE_FILE__, __LINE__).get() << "testing the logger."; }