Adding line and file name to the log.

This makes the log line a bit too long in my taste so if anyone got
an idea of how to make it look nicer i.e making it optional or adding it only to errors/warnings
do share


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4776 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
nakeee
2010-01-03 08:48:48 +00:00
parent ded7a2921d
commit ad594abe69
3 changed files with 12 additions and 11 deletions

View File

@ -105,14 +105,15 @@ enum LOG_LEVELS {
#define INFO_LOG(...) {} #define INFO_LOG(...) {}
#define DEBUG_LOG(...) {} #define DEBUG_LOG(...) {}
void GenericLog(LogTypes::LOG_LEVELS level, LogTypes::LOG_TYPE type, const char *fmt, ...); void GenericLog(LogTypes::LOG_LEVELS level, LogTypes::LOG_TYPE type,
const char *file, int line, const char *fmt, ...);
#ifdef GEKKO #ifdef GEKKO
#define GENERIC_LOG(t, v, ...) #define GENERIC_LOG(t, v, ...)
#else #else
// Let the compiler optimize this out // Let the compiler optimize this out
#define GENERIC_LOG(t, v, ...) {if (v <= MAX_LOGLEVEL) {GenericLog(v, t, __VA_ARGS__);}} #define GENERIC_LOG(t, v, ...) {if (v <= MAX_LOGLEVEL) {GenericLog(v, t, __FILE__, __LINE__, __VA_ARGS__);}}
#endif #endif
#if MAX_LOGLEVEL >= ERROR_LEVEL #if MAX_LOGLEVEL >= ERROR_LEVEL

View File

@ -17,12 +17,12 @@
#include "LogManager.h" #include "LogManager.h"
#include "Timer.h" #include "Timer.h"
void GenericLog(LogTypes::LOG_LEVELS level, LogTypes::LOG_TYPE type,
void GenericLog(LogTypes::LOG_LEVELS level, LogTypes::LOG_TYPE type, const char* fmt, ...) const char *file, int line, const char* fmt, ...)
{ {
va_list args; va_list args;
va_start(args, fmt); va_start(args, fmt);
LogManager::GetInstance()->Log(level, type, fmt, args); LogManager::GetInstance()->Log(level, type, file, line, fmt, args);
va_end(args); va_end(args);
} }
@ -95,7 +95,8 @@ LogManager::~LogManager() {
} }
void LogManager::Log(LogTypes::LOG_LEVELS level, LogTypes::LOG_TYPE type, void LogManager::Log(LogTypes::LOG_LEVELS level, LogTypes::LOG_TYPE type,
const char *format, va_list args) { const char *file, int line, const char *format,
va_list args) {
char temp[MAX_MSGLEN]; char temp[MAX_MSGLEN];
char msg[MAX_MSGLEN + 512]; char msg[MAX_MSGLEN + 512];
@ -107,11 +108,10 @@ void LogManager::Log(LogTypes::LOG_LEVELS level, LogTypes::LOG_TYPE type,
CharArrayFromFormatV(temp, MAX_MSGLEN, format, args); CharArrayFromFormatV(temp, MAX_MSGLEN, format, args);
static const char level_to_char[7] = "-NEWID"; static const char level_to_char[7] = "-NEWID";
sprintf(msg, "%s %c[%s]: %s\n", sprintf(msg, "%s %s:%u %c[%s]: %s\n",
Common::Timer::GetTimeFormatted().c_str(), Common::Timer::GetTimeFormatted().c_str(),
level_to_char[(int)level], file, line, level_to_char[(int)level],
log->getShortName(), log->getShortName(), temp);
temp);
logMutex.Enter(); logMutex.Enter();
log->trigger(level, msg); log->trigger(level, msg);

View File

@ -143,7 +143,7 @@ public:
static u32 GetMaxLevel() { return MAX_LOGLEVEL; } static u32 GetMaxLevel() { return MAX_LOGLEVEL; }
void Log(LogTypes::LOG_LEVELS level, LogTypes::LOG_TYPE type, void Log(LogTypes::LOG_LEVELS level, LogTypes::LOG_TYPE type,
const char *fmt, va_list args); const char *file, int line, const char *fmt, va_list args);
void setLogLevel(LogTypes::LOG_TYPE type, LogTypes::LOG_LEVELS level) { void setLogLevel(LogTypes::LOG_TYPE type, LogTypes::LOG_LEVELS level) {
m_Log[type]->setLevel(level); m_Log[type]->setLevel(level);