96 Commits

Author SHA1 Message Date
Akkadius
e4829225f6 Add file log handling in every process 2015-01-20 06:15:56 -06:00
Akkadius
9ae28d7619 More process based logging work 2015-01-20 06:13:12 -06:00
Akkadius
7f2f6a8612 Placing Log defaults after RegisterExecutablePlatform and installing database log setting loads right after database connection for all processes 2015-01-20 05:22:15 -06:00
Akkadius
45560f6654 Remove some old MySQL logging for errors 2015-01-19 23:48:30 -06:00
Akkadius
0d9b6703a6 Rename debug.h to global_define.h, update cmakelists and such 2015-01-19 04:12:09 -06:00
Akkadius
fa83809130 Removal of client_logs.h from #includes 2015-01-19 03:40:09 -06:00
Akkadius
2a6a3e419c Remove logtypes.h from header includes and the file itself 2015-01-19 03:33:15 -06:00
Akkadius
7503e29211 Remove LogSettingsFile from config parsers which removes log.ini completely 2015-01-19 03:28:00 -06:00
Akkadius
d45bc6d26a General cleanup 2015-01-19 03:25:46 -06:00
Akkadius
ab4595f56d Remove QueryPerformanceCounter code 2015-01-19 03:22:23 -06:00
Akkadius
d1572790b1 Remove eqemu_error.cpp/.h as they are useless 2015-01-18 04:15:26 -06:00
Akkadius
f81a8b716b Rip out load_log_settings in all projects 2015-01-18 02:52:32 -06:00
Akkadius
467b359d0c Moved all EQEmuLogSys:: enum references used in Log.Out to a namespace 'Logs' for shortening of syntax 2015-01-18 02:20:16 -06:00
Akkadius
c025765283 Renamed DoLog to Out as the aggregate logging function for simplicity of use and shortened syntax of Log.Out 2015-01-18 02:00:15 -06:00
Akkadius
1c048cb1d1 Renamed DebugCategory to DoLog as the aggregate logging function for simplicity of use and shortened syntax of Log.DoLog 2015-01-18 01:54:09 -06:00
Akkadius
e691735a2d Consolidate 'LogType' Error logs over to 'LogCategory' 2015-01-18 01:30:25 -06:00
Akkadius
7dbde36b03 Rename reference logger to Log 2015-01-18 00:41:18 -06:00
Akkadius
d45ed9befa Consolidate EQEmuLogsys::Debug calls into DebugCategory 2015-01-17 23:59:06 -06:00
Akkadius
132fbbb0c6 Rename LogDebugType to DebugCategory 2015-01-16 03:09:02 -06:00
Akkadius
5a3b40c503 Remove my test code in net.cpp 2015-01-16 03:02:30 -06:00
Akkadius
d1d26437e5 Cleaning up Zone net.cpp 2015-01-16 03:00:49 -06:00
Akkadius
78e08e5327 Move GMSayHookCallBackProcess out of client logs and into Zone Class 2015-01-16 02:56:39 -06:00
Akkadius
d9626e392e Rip out Client Log Callbacks from zone 2015-01-16 02:49:23 -06:00
Akkadius
70fbf23d27 Rename LoadLogSettings to LoadLogSettingsDefaults 2015-01-16 00:07:30 -06:00
Akkadius
0d2c396680 zone LoadLogSysSettings 2015-01-16 00:06:12 -06:00
Akkadius
733159923a Convert 'COMMON' debugging _log to logger.LogDebugType 2015-01-12 23:01:01 -06:00
Akkadius
4c50025f13 Convert 'ZoneServer' debugging _log to logger.LogDebugType 2015-01-12 22:47:37 -06:00
Akkadius
6e11baf308 Convert world debugging _log to logger.LogDebugType 2015-01-12 22:28:16 -06:00
Akkadius
4811631127 Convert _log from TASKS category 2015-01-12 21:19:19 -06:00
Akkadius
b1939aaa3e Remove Save from LogTypes 2015-01-12 20:58:17 -06:00
Akkadius
9d355f0f99 Add zone callback for client messages so log messages can be piped to it 2015-01-12 20:11:23 -06:00
Akkadius
fac1361d36 logger.LoadLogSettings() added after each platform executable registry
Added int return for platform executable
2015-01-12 05:15:31 -06:00
Akkadius
167e11426f Log Message reword for zone and world bootup failure 2015-01-10 19:32:07 -06:00
Akkadius
7e7c59967c _log error convert to logger.Log(EQEmuLogSys::Error 2015-01-10 19:05:46 -06:00
Akkadius
b76e179d75 Fix spacing 2015-01-10 15:47:36 -06:00
Akkadius
6844645dfb Replace LogFile->write(EQEmuLog::Error, with logger.logevents(EQEmuLogSys::Error 2015-01-10 15:44:35 -06:00
Akkadius
9e4ef74dd5 RULE_INT(Logging, DebugLogLevel, 0) /* Sets Debug Level, -1 = OFF, 0 = Low Level, 1 = Info, 2 = Extreme */ 2015-01-10 14:59:32 -06:00
Akkadius
84741e4cb1 log_sys to logger
enum DebugLevel {
		General = 0,	/* 0 - Low-Level general debugging, useful info on single line */
		Moderate,		/* 1 - Informational based, used in functions, when particular things load */
		Detail,			/* 2 - Use this for extreme detail in logging, usually in extreme debugging in the stack or interprocess communication */
	};
void EQEmuLogSys::LogDebug(DebugLevel debug_level, std::string message, ...)
2015-01-10 14:40:47 -06:00
Akkadius
2aacc7323e Backport logging from debug.cpp EQEmuLog::write back to EQEmuLogSys::WriteZoneLog
Logs being written to logs/zone/ currently
2015-01-10 03:44:49 -06:00
Akkadius
be381b4e56 Renamed EQEMuLog class to EQEmuLog 2015-01-08 19:46:28 -06:00
akkadius
0d0917b779 Temporary revert of net.cpp to wave 1 of cleanups 2014-11-29 23:12:09 -06:00
akkadius
7db731a47d net.cpp #include cleanup
net.cpp forward declaration
2014-11-29 14:07:40 -06:00
akkadius
ad9c0df552 #include and forward declaration cleanup of
client.cpp net.cpp questmgr.cpp zone.cpp zone.h
2014-11-29 03:12:34 -06:00
Akkadius
4432c07081 State of Commit: Testable if you ask me (Akkadius) what you need to do
- Need to convert a list of functions and columns and should be ready to start intensive testing phase
 - All preliminary tests show things working great

- All of player profile is saved and loaded from the database
- DBAsync has been completely removed from all code
	- Removed zone/dbasync.cpp/.h
	- Removed common/dbasync.cpp/.h
	- Removed dbasync from cmake commmon and zone
- Cleaned up a ton of functions
- Added several tables to world CheckDatabaseConversions script:
	- `character_skills`
	- `character_languages`
	- `character_bind`
	- `character_alternate_abilities`
	- `character_currency`
	- `character_data`
	- `character_spells`
	- `character_memmed_spells`
	- `character_disciplines`
	- `character_material`
	- `character_tribute`
	- `character_bandolier`
	- `character_potionbelt`
- Character select now loads from `character_data`
- Character creation now creates to `character_data`
- Updated function Database::UpdateName to use `character_data`
- Updated function Database::CheckUsedName to use `character_data`
- Updated function Database::MoveCharacterToZone to use `character_data`
- Updated function Database::SetLoginFlags to use `character_data`
- Updated function Database::SetFirstLogon to use `character_data`
- Updated function Database::SetLFG to use `character_data`
- Removed CopyCharacter functions and commands, to be recreated later since it never worked to begin with
- Removed SharedDatabase::SetPlayerProfile
- Trimmed down redundant case switch statements for World sendpackets to QueryServ
- Added Character Methods to Database class:
	Loads:
		bool	LoadCharacterBandolier(uint32 character_id, PlayerProfile_Struct* pp);
		bool	LoadCharacterTribute(uint32 character_id, PlayerProfile_Struct* pp);
		bool	LoadCharacterPotions(uint32 character_id, PlayerProfile_Struct* pp);
	Saves:
		bool	SaveCharacterBindPoint(uint32 character_id, uint32 zone_id, uint32 instance_id, float x, float y, float z, float heading, uint8 is_home);
		bool	SaveCharacterCurrency(uint32 character_id, PlayerProfile_Struct* pp);
		bool	SaveCharacterData(uint32 character_id, uint32 account_id, PlayerProfile_Struct* pp);
		bool	SaveCharacterAA(uint32 character_id, uint32 aa_id, uint32 current_level);
		bool	SaveCharacterSpellSwap(uint32 character_id, uint32 spell_id, uint32 from_slot, uint32 to_slot);
		bool	SaveCharacterSpell(uint32 character_id, uint32 spell_id, uint32 slot_id);
		bool	SaveCharacterMemorizedSpell(uint32 character_id, uint32 spell_id, uint32 slot_id);
		bool	SaveCharacterMaterialColor(uint32 character_id, uint32 slot_id, uint32 color);
		bool	SaveCharacterSkill(uint32 character_id, uint32 skill_id, uint32 value);
		bool	SaveCharacterLanguage(uint32 character_id, uint32 lang_id, uint32 value);
		bool	SaveCharacterDisc(uint32 character_id, uint32 slot_id, uint32 disc_id);
		bool	SaveCharacterTribute(uint32 character_id, PlayerProfile_Struct* pp);
		bool	SaveCharacterBandolier(uint32 character_id, uint8 bandolier_id, uint8 bandolier_slot, uint32 item_id, uint32 icon, const char* bandolier_name);
		bool	SaveCharacterPotionBelt(uint32 character_id, uint8 potion_id, uint32 item_id, uint32 icon);
	Deletes:
		bool	DeleteCharacterSpell(uint32 character_id, uint32 spell_id, uint32 slot_id);
		bool	DeleteCharacterMemorizedSpell(uint32 character_id, uint32 spell_id, uint32 slot_id);
		bool	DeleteCharacterDisc(uint32 character_id, uint32 slot_id);
		bool	DeleteCharacterBandolier(uint32 character_id, uint32 band_id);
2014-09-04 07:24:17 -05:00
akkadius
7f89191ffc Changed zone process window title format, example: 'crushbone :: clients: 6 inst_id: 1 inst_ver: 0 :: port: 7015'
Most of the following changes are QueryServ related, fully implemented its original functionality to be able to offload
	intensive or metric based logging to a remote server process that could exist on another server entirely
Implemented Player Event Logging Types (Go to table `qs_player_events`):
		1 = Player_Log_Quest,
		2 = Player_Log_Zoning,
		3 = Player_Log_Deaths,
		4 = Player_Log_Connect_State,
		5 = Player_Log_Levels,
		6 = Player_Log_Keyring_Addition,
		7 = Player_Log_QGlobal_Update,
		8 = Player_Log_Task_Updates,
		9 = Player_Log_AA_Purchases,
		10 = Player_Log_Trade_Skill_Events,
		11 = Player_Log_Issued_Commands,
		12 = Player_Log_Money_Transactions,
		13 = Player_Log_Alternate_Currency_Transactions,
		- All QueryServ logging will be implemented with a front end in EoC 2.0 very soon
Changed all QS Error related logging to 'QUERYSERV__ERROR'
(Natedog) (Crash Fix) Legacy MySQL bug revert for loading AA's COALESCE( from COALESCE (
Implemented Perl Quest objects (LUA still needed to be exported):
	- quest::qs_send_query("MySQL query") - Will send a raw query to the QueryServ process, useful for custom logging
	- quest::qs_player_event(char_id, event_desc); - Will process a quest type event to table `qs_player_events`
Added MySQL Tables:
	- `qs_player_aa_rate_hourly`
	- `qs_player_events`
	- Source table structures from:
		- utils\sql\git\queryserv\required\08_23_2014_player_events_and_player_aa_rate_hourly
		To get the complete QueryServ schema, source from here:
		- utils\sql\git\queryserv\required\Complete_QueryServ_Table_Structures.sql
Added rules for each logging type, source rules here with them enabled by default:
	- utils\sql\git\queryserv\required\Complete_QueryServ_Rules_Enabled.sql
Spawn related logging cleanup
General code cleanup
Added queryserv.cpp and queryserv.h with QueryServ class
2014-08-23 23:59:20 -05:00
KimLS
07a2cbe9a5 Renamed zone files 2014-08-21 23:46:01 -07:00
KimLS
504a8b19ce Missed Mutex.h 2014-08-21 19:36:50 -07:00
KimLS
7fc21b9e3a Tons of renames 2014-08-21 19:33:02 -07:00
Akkadius
7cfc5b085e (Performance Adjustment) Removed AsyncLoadVariables from InterserverTimer.Check() in both zone and world. By watching the MySQL general.log file on mass zone idle activity, you can
see that the query 'SELECT varname, value, unix_timestamp() FROM variables where unix_timestamp(ts) >= timestamp' is called every 10 seconds. This function is loading
	variables that are initially loaded on World and Zone bootup. When running a large amount of zone servers, the amount of MySQL chatter that is produced is enormous and
	unnecessary. For example, if I ran 400 zone servers, I would see 3,456,000 unnecessary queries from all idle or active zone processes in a 24 hour interval.
2014-04-05 03:38:58 -05:00
cavedude00
16afa277de Exported TrainDisc to Lua.
Updated idle timer names.
2014-02-27 23:21:57 -08:00