Commit Graph
290 Commits
Author SHA1 Message Date
Spp 55ce180f28 Core/Logging: Add Asyncronous logging with Loggers ("What to log") and Appenders ("Where to log") system. Will allow to select to full log some parts of core while others are not even logged.
- Logging System is asyncronous to improve performance.
- Each msg and Logger has a Log Type and Log Level assigned. Each msg is assigned the Logger of same Log Type or "root" Logger is selected if there is no Logger configured for the given Log Type
- Loggers have a list of Appenders to send the msg to. The Msg in the Logger is not sent to Appenders if the msg LogLevel is lower than Logger LogLevel.
- There are three (at the moment) types of Appenders: Console, File or DB (this is WIP, not working ATM). Msg is not written to the resource if msg LogLevel is lower than Appender LogLevel.
- Appender and Console Log levels can be changed while server is active with command '.set loglevel (a/l) name level'

Explanation of use with Sample config:

Appender.Console.Type=1       (1 = Console)
Appender.Console.Level=2      (2 = Debug)

Appender.Server.Type=2        (2 = File)
Appender.Server.Level=3       (3 = Info)
Appender.Server.File=Server.log

Appender.SQL.Type=2           (2 = File)
Appender.SQL.Level=1          (1 = Trace)
Appender.SQL.File=sql.log

Appenders=Console Server      (NOTE: SQL has not been included here... that will make core ignore the config for "SQL" as it's not in this list)

Logger.root.Type=0            (0 = Default - if it's not created by config, server will create it with LogLevel = DISABLED)
Logger.root.Level=5           (5 = Error)
Logger.root.Appenders=Console

Logger.SQL.Type=26            (26 = SQL)
Logger.SQL.Level=3            (2 = Debug)
Logger.SQL.Appenders=Console Server SQL

Logger.SomeRandomName.Type=24 (24 = Guild)
Logger.SomeRandomName.Level=5 (5 = Error)
Loggers=root SQL SomeRandomName

* At loading Appender SQL will be ignored, as it's not present on "Appenders"

* sLog->outDebug(LOG_FILTER_GUILD, "Some log msg related to Guilds")
  - Msg is sent to Logger of Type LOG_FILTER_GUILD (24). Logger with name SomeRandomName is found but it's LogLevel = 5 and Msg LogLevel=2... Msg is not logged

* sLog->outError(LOG_FILTER_GUILD, "Some error log msg related to Guilds")
  - Msg is sent to Logger of Type LOG_FILTER_GUILD (24). Logger with name SomeRandomeName is found with proper LogLevel but Logger does not have any Appenders assigned to that logger... Msg is not logged

* sLog->outDebug(LOG_FILTER_SQL, "Some msg related to SQLs")
  - Msg is sent to Logger SQL (matches type), as it matches LogLevel the msg is sent to Appenders Console, Server and SQL
    - Appender Console has lower Log Level: Msg is logged to Console
    - Appender Server has higher Log Level: Msg is not logged to file
    - Appender SQL has lower Log Level: Msg is logged to file sql.log

* sLog->outDebug(LOG_FILTER_BATTLEGROUND, "Some msg related to Battelgrounds")
  - Msg is sent to Logger root (Type 0) as no Logger was found with Type LOG_FILTER_BATTLEGROUND (13). As Logger has higher LogLevel msg is not sent to any appender

* sLog->outError(LOG_FILTER_BATTLEGROUND, "Some error msg related to Battelgrounds")
  - Msg is sent to Logger root (Type 0) as no Logger was found with Type LOG_FILTER_BATTLEGROUND (13). Msg has lower LogLevel and is sent to Appender Console
    - Appender Console has lower LogLevel: Msg is logged to Console
2012-08-03 14:20:18 +02:00
Chaplain 716e2db0e1 Core/Misc: Code-style + some const methods. 2012-06-21 21:05:45 +03:00
Shauren c7775c8d72 Core/Maps: Moved object respawn time storage from global to map level. This removes unneccessary locking since all objects run within its map's thread. 2012-06-07 23:20:57 +02:00
Shauren 5eee40249c Core/Items: Added custom flags field to item_template, currently 2 flag values are available
* ITEM_FLAGS_CU_DURATION_REAL_TIME determines item duration counts even if offline (replaced ugly negative duration workaround, easy to lose data when importing fresh wdb)
* ITEM_FLAGS_CU_IGNORE_QUEST_STATUS quest status will not affect this item appearing in loot, currently needed for Arena Master trinket
2012-05-31 15:39:18 +02:00
kaelima 419d537bc8 Core/Global: Cleanup in MovementHandler and some assertions 2012-05-23 15:02:54 +02:00
click d4cc9078e1 Core: Fix another type-error in the mail expiration handling (using data pulled from CHAR_SEL_EXPIRED_MAIL_ITEMS prepped statement) 2012-04-02 04:39:01 +02:00
Nay b03f895cf5 Core/DBLayer: Yet more type fixes 2012-04-02 00:22:33 +01:00
Nay b7f7e3118c Core/DBLayer: More type fixes
Thanks to Vasago for the help in spotting the errors
Thanks to Subv as well (so he doesn't feel lonely)
2012-04-01 22:41:47 +01:00
Nay 377c5ce36e Core/DBLayer: Fix another wrong type in mail related code 2012-04-01 03:09:01 +01:00
Nay 92d3548f0b Core/DBLayer: Even more types fixes... 2012-03-29 15:08:17 +01:00
Gyx 360014856d Core/Game: Code style.
Signed-off-by: Gyx <[email protected]>
2012-03-29 13:42:04 +08:00
Gyx 1544b208da Core/Game: Code style again.
Signed-off-by: Gyx <[email protected]>
2012-03-28 20:00:29 +08:00
Nay f44e6834df Core/DBLayer: Fix remaining errors in loading world tables and a couple of them in characters database
Also removed World::LoadIp2nation(), it was not doing anything.
Closes #5897
2012-03-28 00:38:24 +01:00
click ef3835655c Core. Fix a mishap in the ObjectMgr after the recent changes 2012-03-27 23:12:01 +02:00
Nay 729f419af1 Core/DBLayer: Correct few more wrong read types (No. 4)
DB/World: Some consistency in the ints "length" field (not really a length)

All world dbs checked
2012-03-27 21:36:16 +01:00
Nay ead019b061 Core/DBLayer: Correct few more wrong read types (No. 3)
DB/World: Some consistency in the ints "length" field (not really a length)

From A to G world tables verified; missing all the others
2012-03-27 19:26:58 +01:00
Nay e40eb4bfbc Core/DBLayer: Correct few more wrong read types (No. 2)
DB/World: Some consistency in the ints "length" field (not really a length)

From A to G world tables verified; missing all the others
2012-03-27 15:47:40 +01:00
Nay a92820b51c Core/DBLayer: Correct few more wrong read types (No. 1)
DB/World: Some consistency in the ints "length" field (not really a length)

From A to D world tables verified; missing all the others

int(11) -> int32
unsigned int(10) -> uint32
mediumint(8) -> int32
unsigned mediumint(8) -> uint32
smallint(6) -> int16
unsigned smallint(5) -> uint16
tinyint(4) -> int8
unsigned tinyint(3) -> uint8
2012-03-27 00:43:56 +01:00
Nay 8f365de4b2 Core/DBLayer: Fix creature and spell_rank loading 2012-03-26 21:06:50 +01:00
leak b1ca1ee5ec Core/DBLayer: Convert PAppend() queries to prepared statements No.4 NOTE:
Most of the cores queries have been converted to prepared statements now. If your code contains queries, please either use the exiting or implement new statements.
The only exclusions are one-time queries (e.g. for core startup) and queries that can't be prepared due to limitations.
2012-03-26 15:47:37 +02:00
Shauren e64d1d43dd Core: Add proper cleanup at exit for smart script waypoints and instance encounters 2012-03-24 18:42:35 +01:00
Nay 5a73149565 Core/DBLayer: Fix a typo in a field type/size - npc_vendor
Closes #5863
2012-03-24 04:05:37 +00:00
leak 12e55a04bb Core/DBLayer: Convert PQuery() queries to prepared statements 2012-03-24 01:25:08 +01:00
leak 178c658363 Core/DBLayer: Convert DirectExecute() queries that are not runtime relevant back to regular queries 2012-03-19 18:09:13 +01:00
leak 847b4366f3 Core/DBLayer: Convert PExecute() queries to prepared statements 2012-03-19 16:48:08 +01:00
Machiavelli 03a24a84e4 Core/Units:
- Implement UNIT_FIELD_HOVERHEIGHT (requires DB data). This field, sent in update object packet, will determine the height at which a creature hovers if it has movementflag_hover applied. Note that hovering will now update the server-sided z-coordinate by the value of this field, and that all subsequent positional updates to the client will need to send z coordinate MINUS the hover height offset, or the hoverheight will be visually doubled client side.
- Correct our usage of movementflag_flying, movementflag_can_fly, movementflag_hover and movementflag_disable_gravity (previously levitate), and how they relate to InhabitType in the database. This fixes "flying creatures on steroids" bug (wings flapping too fast), and potentially a lot of visual issues in AI scripts. Note that a lot of scripts still set wrong movementflags, these need to be fixed on a case by case basis.
- Send correct packets for SPELL_AURA_FEATHER_FALL, SPELL_AURA_WATER_WALK and SPELL_AURA_HOVER apply/unapply.
- Send correct packet contents for movement update in Unit::SetSpeed.
- Misc. cleanup in affected scripts.
2012-03-12 00:53:45 +01:00
Shauren 7eff1c8f53 Core: Build fix (for real this time) and warning fix 2012-02-29 12:02:28 +01:00
Spp 3e622ee7ac Core: Minor cleanup in ObjectMgr and warning fixes 2012-02-27 11:08:34 +01:00
Subv 95d3ea5512 Core/Misc: Reserve space for the data in the stores before inserting it 2012-02-26 14:57:00 -05:00
Machiavelli 16818d7548 Core/Conditions: Convert npc_spellclick_spells data to condition system. This implements CONDITION_SOURCE_TYPE_SPELL_CLICK_EVENT (previous CONDITION_SOURCE_TYPE_UNUSED_18). Wiki needs to be updated accordingly. 2012-02-20 23:25:59 +01:00
Shauren da5027ef3a Core/ObjectMgr: Warn about creatures that have waypoint movement type set but no path assigned on startup 2012-02-18 16:20:00 +01:00
MrSmite d55c8c7cc4 Core/Misc: Correct console output for ObjectMgr::LoadCorpses
Closes #5299

Signed-off-by: Machiavelli <[email protected]>
2012-02-18 11:46:05 +01:00
Subv 8a72aede16 Codestyle: Renamed some variables to fit codestyle, corrected order in structure/class fields to match alignment (they use slightly less memory now)
Signed-off-by: Subv <[email protected]>
2012-02-14 12:46:26 -05:00
Subv d790adefe0 Codestyle: Renamed some variables to fit codestyle
Signed-off-by: Subv <[email protected]>
2012-02-12 20:10:09 -05:00
Subv 06df126bd0 Core/Loading: Speedup on the creature loading code
Signed-off-by: Subv <[email protected]>
2012-02-12 17:34:41 -05:00
Shauren 01aeccb8d7 Core/ObjectMgr: Improved error message to include source of the error
SQL: Renamed files to match standards
2012-01-30 12:41:05 +01:00
leak ced346076b Merge pull request #4567 from Kiperr/master
Happy new year!
2011-12-31 16:13:28 -08:00
leak cdbeb42e0f Core/DBLayer: Refactor prepared statement defines to new format (char db) 2012-01-01 01:09:38 +01:00
kiper 8299627ed9 Update headers for 2012. HAPPY NEW YEAR!!! 2012-01-01 00:32:13 +01:00
leak 73cf793e56 Core/DBLayer: Refactor prepared statement defines Note:
The new format for the middle section is a 3-letter upper case abbreviation of the sql command being executed (select -> SEL, update -> UPD, etc.)
{DB}_{SEL/INS/UPD/DEL/REP}_{Summary of data changed}
2011-12-31 20:14:38 +01:00
leak 8adac3f246 Core/DBLayer: Convert PExecute() queries to prepared statements No. 3 2011-12-31 00:32:05 +01:00
megamage 8cf2062c1f Update grid system. Try to fix some crashes and transport passengers (now they are despawned after a while). 2011-12-20 17:07:09 -05:00
Spp d59c5e627f Fix warnings 2011-12-15 11:12:15 +01:00
kaelima ef519bd313 Copy/paste error in f8cb2f528b 2011-12-13 13:58:52 +01:00
Vinolentus 599a24df24 Core/ObjectMgr: Fix possible SQL injection for game_tele 2011-12-13 13:58:49 +01:00
kaelima 17771b20c1 Copy/paste error in f8cb2f528b 2011-12-12 21:05:51 +01:00
Vinolentus f8cb2f528b Core/ObjectMgr: Fix possible SQL injection for game_tele 2011-12-12 20:36:46 +01:00
LaserJet 9c65d26e46 Core/Loading: Fix some copy&paste mistakes in creature_(template_)addon 2011-12-07 22:05:57 +01:00
megamage 6a648c01a4 Some clean up of grid system. 2011-12-07 13:02:44 -05:00
Nay 15c24a4e97 Core/Quest: Consistency, god damn..
(RequiredSourceItemIdCount -> RequiredSourceItemCount; quest_template did not change)
2011-12-06 10:56:37 +00:00