void Log::outDetail( const char * str, ... ) { if (!str) return; if (m_logLevel >= LOG_LVL_DETAIL) { if (m_colored) SetColor(true,m_colors[LogDetails]); if (m_includeTime) outTime(); va_list ap; va_start(ap, str); vutf8printf(stdout, str, &ap); va_end(ap); if (m_colored) ResetColor(true); printf( "\n" ); } if (logfile && m_logFileLevel >= LOG_LVL_DETAIL) { outTimestamp(logfile); va_list ap; va_start(ap, str); vfprintf(logfile, str, ap); va_end(ap); fprintf(logfile, "\n" ); fflush(logfile); } fflush(stdout); }
void Log::outDebug(const char* str, ...) { if (!str) return; std::lock_guard<std::mutex> guard(m_worldLogMtx); if (m_logLevel >= LOG_LVL_DEBUG) { if (m_colored) SetColor(true, m_colors[LogDebug]); if (m_includeTime) outTime(); va_list ap; va_start(ap, str); vutf8printf(stdout, str, &ap); va_end(ap); if (m_colored) ResetColor(true); printf("\n"); } if (logfile && m_logFileLevel >= LOG_LVL_DEBUG) { outTimestamp(logfile); va_list ap; va_start(ap, str); vfprintf(logfile, str, ap); va_end(ap); fprintf(logfile, "\n"); fflush(logfile); } fflush(stdout); }
void Log::outBasic(const char * str, ...) { if (!str) return; if (m_enableLogDB && m_dbLogLevel > LOGL_NORMAL) { va_list ap2; va_start(ap2, str); char nnew_str[MAX_QUERY_LEN]; vsnprintf(nnew_str, MAX_QUERY_LEN, str, ap2); outDB(LOG_TYPE_BASIC, nnew_str); va_end(ap2); } if (m_logLevel > LOGL_NORMAL) { if (m_colored) SetColor(true,m_colors[LOGL_BASIC]); UTF8PRINTF(stdout,str,); if (m_colored) ResetColor(true); printf("\n"); if (logfile) { outTimestamp(logfile); va_list ap; va_start(ap, str); vfprintf(logfile, str, ap); fprintf(logfile, "\n"); va_end(ap); fflush(logfile); } } fflush(stdout); }
void Log::outError(const char * err, ...) { if (!err) return; if (m_enableLogDB) { va_list ap2; va_start(ap2, err); char nnew_str[MAX_QUERY_LEN]; vsnprintf(nnew_str, MAX_QUERY_LEN, err, ap2); outDB(LOG_TYPE_ERROR, nnew_str); va_end(ap2); } if (m_colored) SetColor(false,LRED); UTF8PRINTF(stderr,err,); if (m_colored) ResetColor(false); fprintf (stderr, "\n"); if (logfile) { outTimestamp(logfile); fprintf(logfile, "ERROR: "); va_list ap; va_start(ap, err); vfprintf(logfile, err, ap); va_end(ap); fprintf(logfile, "\n"); fflush(logfile); } fflush(stderr); }
void Log::outCrash(const char * err, ...) { if (!err) return; if (m_enableLogDB) { va_list ap2; va_start(ap2, err); char nnew_str[MAX_QUERY_LEN]; vsnprintf(nnew_str, MAX_QUERY_LEN, err, ap2); outDB(LOG_TYPE_CRASH, nnew_str); va_end(ap2); } if (m_colored) SetColor(false, LRED); va_list ap; va_start(ap, err); vutf8printf(stderr, err, &ap); va_end(ap); if (m_colored) ResetColor(false); fprintf(stderr, "\n"); if (logfile) { outTimestamp(logfile); fprintf(logfile, "CRASH ALERT: "); va_start(ap, err); vfprintf(logfile, err, ap); va_end(ap); fprintf(logfile, "\n"); fflush(logfile); } fflush(stderr); }
void Log::outError(const char* err, ...) { if (!err) return; std::lock_guard<std::mutex> guard(m_worldLogMtx); if (m_colored) SetColor(false, m_colors[LogError]); if (m_includeTime) outTime(); va_list ap; va_start(ap, err); vutf8printf(stderr, err, &ap); va_end(ap); if (m_colored) ResetColor(false); fprintf(stderr, "\n"); if (logfile) { outTimestamp(logfile); fprintf(logfile, "ERROR:"); va_start(ap, err); vfprintf(logfile, err, ap); va_end(ap); fprintf(logfile, "\n"); fflush(logfile); } fflush(stderr); }
void Log::outString(const char* str, ...) { if (!str) return; std::lock_guard<std::mutex> guard(m_worldLogMtx); if (m_colored) SetColor(true, m_colors[LogNormal]); if (m_includeTime) outTime(); va_list ap; va_start(ap, str); vutf8printf(stdout, str, &ap); va_end(ap); if (m_colored) ResetColor(true); printf("\n"); if (logfile) { outTimestamp(logfile); va_start(ap, str); vfprintf(logfile, str, ap); fprintf(logfile, "\n"); va_end(ap); fflush(logfile); } fflush(stdout); }
void Log::outString( const char * str, ... ) { if( !str ) return; if( m_logLevel > 0 ) { if(m_colored) SetColor(true,m_colors[LogNormal]); if(m_includeTime) outTime(); va_list ap; va_start(ap, str); vutf8printf(stdout, str, &ap); va_end(ap); if(m_colored) ResetColor(true); printf( "\n" ); } if(logfile) { va_list ap; outTimestamp(logfile); va_start(ap, str); vfprintf(logfile, str, ap); fprintf(logfile, "\n" ); va_end(ap); fflush(logfile); } fflush(stdout); }
void Log::outWorldPacketDump( uint32 socket, uint32 opcode, char const* opcodeName, ByteBuffer const* packet, bool incoming ) { if (!worldLogfile) return; outTimestamp(worldLogfile); fprintf(worldLogfile,"\n%s:\nSOCKET: %u\nLENGTH: %u\nOPCODE: %s (0x%.4X)\nDATA:\n", incoming ? "CLIENT" : "SERVER", socket, packet->size(), opcodeName, opcode); size_t p = 0; while (p < packet->size()) { for (size_t j = 0; j < 16 && p < packet->size(); ++j) fprintf(worldLogfile, "%.2X ", (*packet)[p++]); fprintf(worldLogfile, "\n"); } fprintf(worldLogfile, "\n\n"); fflush(worldLogfile); }
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) { outTimestamp(chatLogfile); va_list ap; va_start(ap, str); vfprintf(chatLogfile, str, ap); fprintf(chatLogfile, "\n"); fflush(chatLogfile); va_end(ap); } }
void Log::outError(const char* err, ...) { if (!err) { return; } if (m_colored) { SetColor(false, m_colors[LogError]); } if (m_includeTime) { outTime(); } va_list ap; va_start(ap, err); vutf8printf(stderr, err, &ap); va_end(ap); if (m_colored) { ResetColor(false); } fprintf(stderr, "\n"); if (logfile) { outTimestamp(logfile); fprintf(logfile, "ERROR:"); va_start(ap, err); vfprintf(logfile, err, ap); va_end(ap); fprintf(logfile, "\n"); fflush(logfile); } fflush(stderr); }
void Log::outMenu( const char * str, ... ) { if( !str ) return; SetColor(true,m_colors[LogNormal]); va_list ap; va_start(ap, str); vprintf( str, ap ); va_end(ap); ResetColor(true); if(logfile) { outTimestamp(logfile); va_start(ap, str); vfprintf(logfile, str, ap); fprintf(logfile, "\n" ); va_end(ap); fflush(logfile); } fflush(stdout); }
void Log::outCommand(uint32 account, const char* str, ...) { if (!str) return; std::lock_guard<std::mutex> guard(m_worldLogMtx); if (m_logLevel >= LOG_LVL_DETAIL) { if (m_colored) SetColor(true, m_colors[LogDetails]); if (m_includeTime) outTime(); va_list ap; va_start(ap, str); vutf8printf(stdout, str, &ap); va_end(ap); if (m_colored) ResetColor(true); printf("\n"); } if (logfile && m_logFileLevel >= LOG_LVL_DETAIL) { va_list ap; outTimestamp(logfile); va_start(ap, str); vfprintf(logfile, str, ap); fprintf(logfile, "\n"); va_end(ap); fflush(logfile); } if (m_gmlog_per_account) { if (FILE* per_file = openGmlogPerAccount(account)) { va_list ap; outTimestamp(per_file); va_start(ap, str); vfprintf(per_file, str, ap); fprintf(per_file, "\n"); va_end(ap); fclose(per_file); } } else if (gmLogfile) { va_list ap; outTimestamp(gmLogfile); va_start(ap, str); vfprintf(gmLogfile, str, ap); fprintf(gmLogfile, "\n"); va_end(ap); fflush(gmLogfile); } fflush(stdout); }
void Log::outCommand(uint32 account, const char * str, ...) { if(!str) return; // TODO: support accountid if(m_enableLogDB && m_dbGM) { va_list ap2; va_start(ap2, str); char nnew_str[MAX_QUERY_LEN]; vsnprintf(nnew_str, MAX_QUERY_LEN, str, ap2); outDB(LOG_TYPE_GM, nnew_str); va_end(ap2); } if(m_logLevel > LOGL_NORMAL) { if(m_colored) SetColor(true, m_colors[LOGL_BASIC]); va_list ap; va_start(ap, str); vutf8printf(stdout, str, &ap); va_end(ap); if(m_colored) ResetColor(true); printf("\n"); if(logfile) { outTimestamp(logfile); va_list ap; va_start(ap, str); vfprintf(logfile, str, ap); fprintf(logfile, "\n" ); va_end(ap); fflush(logfile); } } if(m_gmlog_per_account) { if(FILE* per_file = openGmlogPerAccount (account)) { outTimestamp(per_file); va_list ap; va_start(ap, str); vfprintf(per_file, str, ap); fprintf(per_file, "\n" ); va_end(ap); fclose(per_file); } } else if(gmLogfile) { outTimestamp(gmLogfile); va_list ap; va_start(ap, str); vfprintf(gmLogfile, str, ap); fprintf(gmLogfile, "\n" ); va_end(ap); fflush(gmLogfile); } fflush(stdout); }