Core/Logging: Implement logging to database

This commit is contained in:
Spp
2012-08-06 13:20:24 +02:00
parent 97c4b92eb0
commit 6d21515939
2 changed files with 17 additions and 12 deletions
@@ -0,0 +1,2 @@
ALTER TABLE `logs` ADD COLUMN `level` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0 AFTER `type`;
+15 -12
View File
@@ -16,12 +16,7 @@
*/
#include "AppenderDB.h"
/* FIXME
#include "DatabaseWorkerPool.h"
#include "Implementation/LoginDatabase.h" // For logging
extern DatabaseWorkerPool LoginDatabase;
*/
#include "Database/DatabaseEnv.h"
AppenderDB::AppenderDB(uint8 id, std::string const& name, LogLevel level, uint8 realmId):
Appender(id, name, APPENDER_DB, level), realm(realmId), enable(false)
@@ -32,13 +27,21 @@ AppenderDB::~AppenderDB()
{
}
void AppenderDB::_write(LogMessage& /*message*/)
void AppenderDB::_write(LogMessage& message)
{
/* FIXME
if (enable)
LoginDatabase.PExecute("INSERT INTO logs (time, realm, type, severity, string) "
"VALUES (" UI64FMTD ", %u, %u, '%s');", message.mtime, realm, message.type, message.level, message.text.c_str());
*/
if (!enable)
return;
switch (message.type)
{
case LOG_FILTER_SQL:
case LOG_FILTER_SQL_DRIVER:
case LOG_FILTER_SQL_DEV:
break; // Avoid infinite loop, PExecute triggers Logging with LOG_FILTER_SQL type
default:
LoginDatabase.PExecute("INSERT INTO logs (time, realm, type, level, string) "
"VALUES (" UI64FMTD ", %u, %u, %u, '%s');", message.mtime, realm, message.type, message.level, message.text.c_str());
break;
}
}
void AppenderDB::setEnable(bool _enable)