aboutsummaryrefslogtreecommitdiff
path: root/src/shared/Log.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/Log.cpp')
-rw-r--r--src/shared/Log.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/shared/Log.cpp b/src/shared/Log.cpp
index 9f7167f9238..401394af1a5 100644
--- a/src/shared/Log.cpp
+++ b/src/shared/Log.cpp
@@ -95,6 +95,7 @@ void Log::Initialize()
m_dbChar = sConfig.GetBoolDefault("LogDB.Char", false);
m_dbRA = sConfig.GetBoolDefault("LogDB.RA", false);
m_dbGM = sConfig.GetBoolDefault("LogDB.GM", false);
+ m_dbChat = sConfig.GetBoolDefault("LogDB.Chat", false);
/// Common log files data
m_logsDir = sConfig.GetStringDefault("LogsDir","");
@@ -145,6 +146,7 @@ void Log::Initialize()
dberLogfile = openLogFile("DBErrorLogFile",NULL,"a");
raLogfile = openLogFile("RaLogFile",NULL,"a");
+ chatLogfile = openLogFile("ChatLogFile",NULL,"a");
// Main log file settings
m_logLevel = sConfig.GetIntDefault("LogLevel", LOGL_NORMAL);
@@ -796,6 +798,33 @@ void Log::outRemote( const char * str, ... )
fflush(stdout);
}
+void Log::outChat( const char * str, ... )
+{
+ if( !str )
+ return;
+
+ if (m_enableLogDB && m_dbChat)
+ {
+ va_list ap2;
+ va_start(ap2, str);
+ char nnew_str[MAX_QUERY_LEN];
+ vsnprintf(nnew_str, MAX_QUERY_LEN, str, ap2);
+ outDB(LOG_TYPE_CHAT, nnew_str);
+ va_end(ap2);
+ }
+
+ if (chatLogfile)
+ {
+ va_list ap;
+ va_start(ap, str);
+ vfprintf(chatLogfile, str, ap);
+ fprintf(chatLogfile, "\n" );
+ fflush(chatLogfile);
+ va_end(ap);
+ }
+ fflush(stdout);
+}
+
void outstring_log(const char * str, ...)
{
if( !str )