aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Logging/Log.h
AgeCommit message (Collapse)Author
2015-08-21Core/Build: Merge common library and move database out of sharedStormBytePP
2015-08-16Core/Logging: Refactored appender creation to allow using logging without ↵Shauren
mysql dependency in tools (future task)
2015-07-22Core/Logging: Enable perfect forwarding for logging format and args.Naios
* Handle timestamp parsing though cppformat. * Change a wrong forward -> move
2015-05-19Core/PacketsIO: Implemented or updated most of party related packets.et65
Packets updated or implemented : - SMSG_INSTANCE_INFO : updated - CMSG_SAVE_CUF_PROFILES : updated - SMSG_LOAD_CUF_PROFILES : updated - SMSG_PARTY_COMMAND_RESULT : updated - CMSG_PARTY_INVITE : updated - SMSG_PARTY_INVITE : updated - CMSG_PARTY_INVITE_RESPONSE : updated - CMSG_PARTY_UNINVITE : updated - SMSG_GROUP_UNINVITE : updated - CMSG_LEAVE_GROUP : updated - SMSG_GROUP_DECLINE : updated - SMSG_GROUP_DESTROYED : updated - CMSG_MINIMAP_PING : updated - SMSG_MINIMAP_PING : updated - CMSG_CONVERT_RAID : updated - CMSG_SET_EVERYONE_IS_ASSISTANT - CMSG_DO_READY_CHECK : updated - CMSG_READY_CHECK_RESPONSE : updated - SMSG_READY_CHECK_COMPLETED : updated - SMSG_READY_CHECK_RESPONSE : updated - SMSG_READY_CHECK_STARTED : updated - CMSG_REQUEST_PARTY_JOIN_UPDATES : implemented (source : sniffs) - CMSG_REQUEST_PARTY_MEMBER_STATE : updated - SMSG_PARTY_MEMBER_STATE : updated - SMSG_PARTY_UPDATE : updated - CMSG_REQUEST_RAID_INFO : updated - CMSG_INITIATE_ROLE_POLL : updated - SMSG_ROLE_POLL_INFORM : updated - CMSG_SET_ROLE : updated - SMSG_ROLE_CHANGED_INFORM : updated - CMSG_CHANGE_SUB_GROUP : updated - CMSG_SWAP_SUB_GROUPS : implemented - CMSG_SET_ASSISTANT_LEADER : updated - CMSG_SET_PARTY_LEADER : updated - SMSG_GROUP_NEW_LEADER : updated - CMSG_CLEAR_RAID_MARKER : implemented - SMSG_RAID_MARKERS_CHANGED : implemented - CMSG_UPDATE_RAID_TARGET : updated - SMSG_SEND_RAID_TARGET_UPDATE_ALL : updated - SMSG_SEND_RAID_TARGET_UPDATE_SINGLE : updated - CMSG_OPT_OUT_OF_LOOT : updated - CMSG_SET_LOOT_METHOD : updated About group update flags: - Not sure they are use for now. - Pets now have their group update flags. - Pets'power is no send to client anymore. - Changes about them are inspired from SMSG_PARTY_MEMBER_STATS parsing of WowPacketParser, but it seems this packet is not use anymore. CHAT_MSG_RAID has been fixed. About Ready check: - Correctly implemented this function. - An update function has been added to Group class, and to GroupMgr class in order to manage the ready check expiration (when 35 seconds were gone, players who have not answered must be reported as AFK) About Raid markers: - Old spell effect SPELL_EFFECT_SUMMON_OBJECT_SLOT3 has been renamed to SPELL_EFFECT_CHANGE_RAID_MARKER and implemented. I'm sure about that because raid markers spells are the only spells that have this effect type. Source: WowPacketParser, and sniffs from official.
2015-04-05Core/Log: Remove some unnecessary std::move's.Naios
* This are r-value references already. * Thanks @Shauren for noticing (cherry picked from commit 85d6ff9570869bce368e9bbcf881755c6c89cb55)
2015-03-28Core/Log: Improve creation of log prefixes.Naios
* this also fixes non whitespace seperated timestamps in logs after 95ebe4f31cba6b4772cfd19 @Aokromes * remove an unnecessary stringstream in Log::outCommand * delete copy constructor of LogMessage to prevent unwanted copies
2015-03-18Core/Log: Readd include of <stdarg.h> to fix compile issues under gccNaios
2015-03-18Merge pull request #14317 from Naios/typesafelogCarbenium
Type safe logging
2015-03-18Shared/Logs: Improve log performancesjackpoz
Improve Log::ShouldLog() performances by saving the lowest log level across all loggers and discarding any log with lower level than that. (cherry picked from commit 003d67708b9a279da3d37e5ef06eb32ceab53964)
2015-03-13Core/Log: Add type safe formattingNaios
* improves safety and log speed through: - variadic templates - perfect forwarding * fixes a newline in db logs * improve performance of Appender::write by using std::ostringstream && std::move
2015-01-01Update copyright note for 2015Vincent-Michael
Happy new year
2014-10-08Core/Logging: Replaced direct calls to GetCounter() in logs with ToString()Shauren
2014-07-21Core: Kill again whitespace :(Vincent-Michael
2014-07-20Refactored singletons to enable proper deconstruction during shutdownleak
2014-07-08Replaced the LogWorker thread with Boost ASIOleak
2014-06-30Replaced ACE_Task_Base based LogWorker with ProducerConsumerQueueleak
2014-06-24Revert "Removed ACE dependencies from LogWorker" This actually needs way ↵leak
more work This reverts commit 0a592dd9dbd34818deee472dd42d700b4746a27e.
2014-06-24Removed ACE dependencies from LogWorkerleak
2014-06-23Merge branch 'master' of github.com:TrinityCore/TrinityCore into boostSubv
Conflicts: src/server/authserver/Server/AuthSession.cpp src/server/game/Server/WorldSession.h src/server/shared/Packets/ByteBuffer.cpp src/server/shared/Utilities/Util.h
2014-06-22Core/Dependencies: Remove ACE_Singleton dependency from the Log and ↵Subv
DelayExecutor classes. Removed an unused function.
2014-05-18Revert "Core/Logging: Use logger cache for speed up logger filter search"jackpoz
This reverts commit 39331ea7b9e906b67378a1be6c0c694d264eda3a. This is required to fix a race condition introduced with the logger cache. Adding a locking mechanism might make worthless the speed gain added by the cache itself, push a proper thread-safe implementation if it's worth it. Helgrind log: Possible data race during write of size 8 at 0x736F428 by thread #1 Locks held: none at 0x11872DF: std::_Hashtable<std::string, std::pair<std::string const, Logger const*>, std::allocator<std::pair<std::string const, Logger const*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_insert_bucket_begin(unsigned long, std::__detail::_Hash_node<std::pair<std::string const, Logger const*>, true>*) (hashtable.h:1196) by 0x11865A1: std::_Hashtable<std::string, std::pair<std::string const, Logger const*>, std::allocator<std::pair<std::string const, Logger const*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_insert_unique_node(unsigned long, unsigned long, std::__detail::_Hash_node<std::pair<std::string const, Logger const*>, true>*) (hashtable.h:1342) by 0x1185A48: std::__detail::_Map_base<std::string, std::pair<std::string const, Logger const*>, std::allocator<std::pair<std::string const, Logger const*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true>, true>::operator[](std::string const&) (hashtable_policy.h:496) by 0x1184F3A: std::unordered_map<std::string, Logger const*, std::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<std::string const, Logger const*> > >::operator[](std::string const&) (unordered_map.h:596) by 0x1184495: Log::GetLoggerByType(std::string const&) (Log.h:106) by 0x1184527: Log::ShouldLog(std::string const&, LogLevel) (Log.h:112) by 0x16E7121: World::LoadConfigSettings(bool) (World.cpp:909) by 0x16EB623: World::SetInitialWorldSettings() (World.cpp:1276) by 0x118F0EC: Master::Run() (Master.cpp:169) by 0x1196AFF: main (Main.cpp:142) This conflicts with a previous read of size 8 by thread #3 Locks held: none at 0x1186EA6: std::_Hashtable<std::string, std::pair<std::string const, Logger const*>, std::allocator<std::pair<std::string const, Logger const*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_find_before_node(unsigned long, std::string const&, unsigned long) const (hashtable.h:1162) by 0x1186263: std::_Hashtable<std::string, std::pair<std::string const, Logger const*>, std::allocator<std::pair<std::string const, Logger const*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_find_node(unsigned long, std::string const&, unsigned long) const (hashtable.h:604) by 0x11857B9: std::_Hashtable<std::string, std::pair<std::string const, Logger const*>, std::allocator<std::pair<std::string const, Logger const*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::find(std::string const&) (hashtable.h:1025) by 0x1184DE2: std::unordered_map<std::string, Logger const*, std::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<std::string const, Logger const*> > >::find(std::string const&) (unordered_map.h:543) by 0x11842EF: Log::GetLoggerByType(std::string const&) (Log.h:84) by 0x1184527: Log::ShouldLog(std::string const&, LogLevel) (Log.h:112) by 0x189AACA: MySQLConnection::Execute(char const*) (MySQLConnection.cpp:175) by 0x18A3225: BasicStatementTask::Execute() (AdhocStatement.cpp:56) Address 0x736F428 is 120 bytes inside a block of size 184 alloc'd at 0x4C2AE3A: operator new(unsigned long, std::nothrow_t const&) (vg_replace_malloc.c:350) by 0x1185046: ACE_Singleton<Log, ACE_Thread_Mutex>::instance() (Singleton.cpp:91) by 0x11968E2: main (Main.cpp:135)
2014-05-18Revert "Core/Logging: store loggers in cache correctly"jackpoz
This reverts commit c6a4d5a1de1c8e9c7722a5a13695d1273b8cbfbc.
2014-05-01Core/Misc: Remove remaining COMPILER_HAS_CPP11_SUPPORT related macrosDehravor
2014-04-08Core/Logging: store loggers in cache correctlyjoschiwald
2014-01-01Update copyright note for 2014.Vincent_Michael
Happy new year.
2013-12-19Core/Logging: Use logger cache for speed up logger filter searchSpp
2013-11-11Core/Logging: Minor changesSpp
- Select stderr when writing ERROR and FATAL messages - Simplify function defines - Fix `logs` table structure with latest logging changes
2013-11-08Core/Logging: Remove LOG_FILTER_XXX defines with it's value (remember logger ↵Spp
names are case-sensitive)
2013-11-07Core/Logging: Extend logging system to allow inheritance of loggersSpp
- Changed default loggers and appenders - '.' determines the relation between loggers ("type.subtype" inherits "type" logger setting if logger "type.subtype" is not defined) - When core logs a message it search for the correct logger (root is the default one) ie: a message logged with "type.subtype" * Core will try to find a logger with name "type.subtype", if its not found then will search for "type", again if its not found it will return the default one "root"
2013-05-13Core: Fixed windows compileShauren
2013-05-13Core/Logging: Performance-related tweaks to logging systemSpp
All sLog->out* functions (except outCommand atm) are replaced with TC_LOG_* macros. Memleak fix
2013-01-16Core/Logging: Use correct realmId when logging to DBSpp
2013-01-14Core/Misc: Apply codestyle to multiple filesSpp
2013-01-01Update copyright note for 2013.Vincent_Michael
Happy new year.
2012-11-27Core/Misc: Set mode 0644 for filesSpp
2012-09-10Core: Warning fixes (Also some -pedantic under game folder)Spp
2012-09-01Core/Logging: Fix delete player crash having logging player enabled.Spp
closes #7437
2012-08-15Core/Logging: Added documentation about this systemSpp
- Restored old CharDump (LOG_FILTER_PLAYER_DUMP) but disabled by default. - "%s" is now used to set dynamic file names, only used by GM commands and Player dump
2012-08-06Core/Logging: Reload Logging options when .reload config is usedSpp
2012-08-03Core/Logging: Add Asyncronous logging with Loggers ("What to log") and ↵Spp
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-03-31Core/Logging: Fix a typo in DebugLogFilters - Database & AINay
Thanks to Garthog for finding it
2012-03-29Core/Misc: Code style and remove unused define.Gyx
Signed-off-by: Gyx <2359980687@qq.com>
2012-02-19Core/Warden: Base implementation for Warden functionalityleak
Note: The default config file action for clients failing the checks can be changed for each check via the characters.warden_action table Credits to TOM_RUS
2012-01-01Update headers for 2012. HAPPY NEW YEAR!!!kiper
2011-10-18Minor changes here and there:Spp
- Cosmetic changes - 'Engrish fix' - Initialization of some vars - Remove some not needed includes
2011-09-26Core/Logging: Add new function to include full stacktrace.Spp
Note: It only has use for devs but makes it easier to get the error with a full trace
2011-09-08Core/Log: Reload log levels and filtersFredi Machado
on 'reload config' command
2011-06-29Core/Logs: Add outSQLDev log, will be used for core-generated SQL queries/dumpsShocker
2011-04-29Add spaces after commasleak
2011-02-20Core/Log: Implement log masks for debug log level, to allow selective debug ↵Machiavelli
output. Update your worldserver.conf.