mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-20 09:11:30 +00:00
Add zone callback for client messages so log messages can be piped to it
This commit is contained in:
parent
08a23265f8
commit
9d355f0f99
@ -106,6 +106,7 @@ static Console::Color LogColors[EQEmuLogSys::MaxLogID] = {
|
|||||||
|
|
||||||
|
|
||||||
EQEmuLogSys::EQEmuLogSys(){
|
EQEmuLogSys::EQEmuLogSys(){
|
||||||
|
on_log_gmsay_hook = [](uint16 log_type, std::string&) {};
|
||||||
}
|
}
|
||||||
|
|
||||||
EQEmuLogSys::~EQEmuLogSys(){
|
EQEmuLogSys::~EQEmuLogSys(){
|
||||||
@ -154,7 +155,6 @@ void EQEmuLogSys::LogDebug(DebugLevel debug_level, std::string message, ...)
|
|||||||
va_start(args, message);
|
va_start(args, message);
|
||||||
std::string output_message = vStringFormat(message.c_str(), args);
|
std::string output_message = vStringFormat(message.c_str(), args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
|
||||||
EQEmuLogSys::Log(EQEmuLogSys::LogType::Debug, output_message);
|
EQEmuLogSys::Log(EQEmuLogSys::LogType::Debug, output_message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -191,6 +191,10 @@ void EQEmuLogSys::Log(uint16 log_type, const std::string message, ...)
|
|||||||
std::string output_message = vStringFormat(message.c_str(), args);
|
std::string output_message = vStringFormat(message.c_str(), args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
|
||||||
|
if (EQEmuLogSys::log_platform == EQEmuExePlatform::ExePlatformZone){
|
||||||
|
on_log_gmsay_hook(output_message);
|
||||||
|
}
|
||||||
|
|
||||||
EQEmuLogSys::ConsoleMessage(log_type, output_message);
|
EQEmuLogSys::ConsoleMessage(log_type, output_message);
|
||||||
|
|
||||||
char time_stamp[80];
|
char time_stamp[80];
|
||||||
|
|||||||
@ -21,6 +21,9 @@
|
|||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <functional>
|
||||||
|
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
|
|
||||||
class EQEmuLogSys {
|
class EQEmuLogSys {
|
||||||
@ -89,9 +92,11 @@ public:
|
|||||||
bool log_settings_loaded = false;
|
bool log_settings_loaded = false;
|
||||||
int log_platform = 0;
|
int log_platform = 0;
|
||||||
|
|
||||||
|
void OnLogHookCallBack(std::function<void(uint16 log_type, std::string&)> f) { on_log_gmsay_hook = f; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool zone_general_init = false;
|
bool zone_general_init = false;
|
||||||
|
std::function<void(uint16 log_type, std::string&)> on_log_gmsay_hook;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern EQEmuLogSys logger;
|
extern EQEmuLogSys logger;
|
||||||
|
|||||||
@ -21,6 +21,7 @@
|
|||||||
#ifdef CLIENT_LOGS
|
#ifdef CLIENT_LOGS
|
||||||
#include "client_logs.h"
|
#include "client_logs.h"
|
||||||
#include "client.h"
|
#include "client.h"
|
||||||
|
#include "entity.h"
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
ClientLogs client_logs;
|
ClientLogs client_logs;
|
||||||
@ -134,6 +135,10 @@ void ClientLogs::EQEmuIO_pva(EQEmuLog::LogIDs id, const char *prefix, const char
|
|||||||
client_logs.msg(id, _buffer);
|
client_logs.msg(id, _buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ClientLogs::ClientMessage(uint16 log_type, std::string& message){
|
||||||
|
entity_list.MessageStatus(0, 80, 7, "%s", message.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
#endif //CLIENT_LOGS
|
#endif //CLIENT_LOGS
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -46,6 +46,7 @@ public:
|
|||||||
void clear(); //unsubscribes everybody
|
void clear(); //unsubscribes everybody
|
||||||
|
|
||||||
void msg(EQEmuLog::LogIDs id, const char *buf);
|
void msg(EQEmuLog::LogIDs id, const char *buf);
|
||||||
|
static void ClientMessage(uint16 log_type, std::string& message);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
|||||||
@ -45,6 +45,7 @@
|
|||||||
#include "../common/spdat.h"
|
#include "../common/spdat.h"
|
||||||
#include "../common/eqemu_logsys.h"
|
#include "../common/eqemu_logsys.h"
|
||||||
|
|
||||||
|
#include "client_logs.h"
|
||||||
#include "zone_config.h"
|
#include "zone_config.h"
|
||||||
#include "masterentity.h"
|
#include "masterentity.h"
|
||||||
#include "worldserver.h"
|
#include "worldserver.h"
|
||||||
@ -115,6 +116,7 @@ extern void MapOpcodes();
|
|||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
RegisterExecutablePlatform(ExePlatformZone);
|
RegisterExecutablePlatform(ExePlatformZone);
|
||||||
logger.LoadLogSettings();
|
logger.LoadLogSettings();
|
||||||
|
logger.OnLog(&ClientLogs::ClientMessage);
|
||||||
set_exception_handler();
|
set_exception_handler();
|
||||||
|
|
||||||
const char *zone_name;
|
const char *zone_name;
|
||||||
|
|||||||
@ -152,7 +152,7 @@ bool Zone::Bootup(uint32 iZoneID, uint32 iInstanceID, bool iStaticZone) {
|
|||||||
|
|
||||||
/* Set Logging */
|
/* Set Logging */
|
||||||
|
|
||||||
logger.StartZoneLogs(StringFormat("%s_ver-%u_instid-%u_port-%u", zone->GetShortName(), zone->GetInstanceVersion(), zone->GetInstanceID(), ZoneConfig::get()->ZonePort));
|
logger.StartLogs(StringFormat("%s_ver-%u_instid-%u_port-%u", zone->GetShortName(), zone->GetInstanceVersion(), zone->GetInstanceID(), ZoneConfig::get()->ZonePort));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user