aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXTZGZoReX <none@none>2009-04-24 18:01:31 +0200
committerXTZGZoReX <none@none>2009-04-24 18:01:31 +0200
commitc9c86b36df3ff7bb9b14a326f1156204a3fbdc95 (patch)
tree74077549608aab94d7271c212bacb3bb28f37f38
parentf235fb6694daf97251d152598189ff2f3c3e215e (diff)
* Optimized Log::outDB by removing unneeded variadic argument parsing. Also use enum instead of explicit uint32.
--HG-- branch : trunk
-rw-r--r--src/shared/Log.cpp18
-rw-r--r--src/shared/Log.h10
2 files changed, 8 insertions, 20 deletions
diff --git a/src/shared/Log.cpp b/src/shared/Log.cpp
index 152110012eb..f3fcae1faf7 100644
--- a/src/shared/Log.cpp
+++ b/src/shared/Log.cpp
@@ -344,28 +344,16 @@ std::string Log::GetTimestampStr()
return std::string(buf);
}
-void Log::outDB( uint32 type, const char * str, ... )
+void Log::outDB( LogTypes type, const char * str )
{
- if(type >= MAX_LOG_TYPES)
- return;
-
- if(!str)
+ if(!str || std::string(str).empty() || type >= MAX_LOG_TYPES)
return;
std::string new_str(str);
LoginDatabase.escape_string(new_str);
- char nnew_str[MAX_QUERY_LEN];
-
- va_list ap;
- va_start(ap, str);
- int res = vsnprintf(nnew_str, MAX_QUERY_LEN, new_str.c_str(), ap);
- va_end(ap);
-
- if ( (res < 0) || (!nnew_str) || (std::string(nnew_str).empty()) )
- return;
LoginDatabase.PExecute("INSERT INTO logs (time, realm, type, string) "
- "VALUES ("I64FMTD", %u, %u, '%s');", uint64(time(0)), realm, type, nnew_str);
+ "VALUES ("I64FMTD", %u, %u, '%s');", uint64(time(0)), realm, (uint32)type, new_str.c_str());
}
void Log::outString( const char * str, ... )
diff --git a/src/shared/Log.h b/src/shared/Log.h
index 6ef7f64289e..654f3c0f04c 100644
--- a/src/shared/Log.h
+++ b/src/shared/Log.h
@@ -29,10 +29,10 @@ class Config;
enum LogFilters
{
- LOG_FILTER_TRANSPORT_MOVES = 0x1,
- LOG_FILTER_CREATURE_MOVES = 0x2,
- LOG_FILTER_VISIBILITY_CHANGES = 0x4,
- LOG_FILTER_ACHIEVEMENT_UPDATES = 0x8
+ LOG_FILTER_TRANSPORT_MOVES = 1,
+ LOG_FILTER_CREATURE_MOVES = 2,
+ LOG_FILTER_VISIBILITY_CHANGES = 4,
+ LOG_FILTER_ACHIEVEMENT_UPDATES = 8
};
enum LogTypes
@@ -95,7 +95,7 @@ class Log : public Trinity::Singleton<Log, Trinity::ClassLevelLockable<Log, ZThr
void SetColor(bool stdout_stream, ColorTypes color);
void ResetColor(bool stdout_stream);
- void outDB( uint32 type, const char * str, ... ) ATTR_PRINTF(3,4);
+ void outDB( LogTypes type, const char * str );
void outString( const char * str, ... ) ATTR_PRINTF(2,3);
void outString( );
void outError( const char * err, ... ) ATTR_PRINTF(2,3);