1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
/*
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3
*/
#ifndef AZEROTHCORE_ILOG_H
#define AZEROTHCORE_ILOG_H
class WorldPacket;
enum DebugLogFilters
{
LOG_FILTER_NONE = 0x00000000,
LOG_FILTER_UNITS = 0x00000001, // Anything related to units that doesn't fit in other categories. ie. creature formations
LOG_FILTER_PETS = 0x00000002,
LOG_FILTER_VEHICLES = 0x00000004,
LOG_FILTER_TSCR = 0x00000008, // C++ AI, instance scripts, etc.
LOG_FILTER_DATABASE_AI = 0x00000010, // SmartAI, EventAI, CreatureAI
LOG_FILTER_MAPSCRIPTS = 0x00000020,
LOG_FILTER_NETWORKIO = 0x00000040, // Anything packet/netcode related
LOG_FILTER_SPELLS_AURAS = 0x00000080,
LOG_FILTER_ACHIEVEMENTSYS = 0x00000100,
LOG_FILTER_CONDITIONSYS = 0x00000200,
LOG_FILTER_POOLSYS = 0x00000400,
LOG_FILTER_AUCTIONHOUSE = 0x00000800,
LOG_FILTER_BATTLEGROUND = 0x00001000, // Anything related to arena's and battlegrounds
LOG_FILTER_OUTDOORPVP = 0x00002000,
LOG_FILTER_CHATSYS = 0x00004000,
LOG_FILTER_LFG = 0x00008000,
LOG_FILTER_MAPS = 0x00010000, // Maps, instances, grids, cells, visibility
LOG_FILTER_PLAYER_LOADING = 0x00020000, // Debug output from Player::_Load functions
LOG_FILTER_PLAYER_ITEMS = 0x00040000, // Anything item related
LOG_FILTER_PLAYER_SKILLS = 0x00080000, // Skills related
LOG_FILTER_LOOT = 0x00100000, // Loot related
LOG_FILTER_GUILD = 0x00200000, // Guild related
LOG_FILTER_TRANSPORTS = 0x00400000, // Transport related
LOG_FILTER_WARDEN = 0x00800000, // Warden related
LOG_FILTER_BATTLEFIELD = 0x01000000, // Battlefield related
LOG_FILTER_MODULES = 0x02000000, // Modules debug
LOG_FILTER_CLOSE_SOCKET = 0x04000000, // Whenever KickPlayer() or CloseSocket() are called
};
enum LogTypes
{
LOG_TYPE_STRING = 0,
LOG_TYPE_ERROR = 1,
LOG_TYPE_BASIC = 2,
LOG_TYPE_DETAIL = 3,
LOG_TYPE_DEBUG = 4,
LOG_TYPE_CHAR = 5,
LOG_TYPE_WORLD = 6,
LOG_TYPE_RA = 7,
LOG_TYPE_GM = 8,
LOG_TYPE_CRASH = 9,
LOG_TYPE_CHAT = 10,
LOG_TYPE_PERF = 11,
LOG_TYPE_MULTITH = 12,
MAX_LOG_TYPES
};
enum LogLevel
{
LOGL_NORMAL = 0,
LOGL_BASIC,
LOGL_DETAIL,
LOGL_DEBUG
};
const int LogLevels = int(LOGL_DEBUG) + 1;
enum ColorTypes
{
BLACK,
RED,
GREEN,
BROWN,
BLUE,
MAGENTA,
CYAN,
GREY,
YELLOW,
LRED,
LGREEN,
LBLUE,
LMAGENTA,
LCYAN,
WHITE
};
const int Colors = int(WHITE) + 1;
class ILog
{
public:
virtual ~ILog() {}
virtual void Initialize() = 0;
virtual void ReloadConfig() = 0;
virtual void InitColors(const std::string& init_str) = 0;
virtual void SetColor(bool stdout_stream, ColorTypes color) = 0;
virtual void ResetColor(bool stdout_stream) = 0;
virtual void outDB(LogTypes type, const char* str) = 0;
virtual void outString(const char* str, ...) = 0;
virtual void outString() = 0;
virtual void outStringInLine(const char* str, ...) = 0;
virtual void outError(const char* err, ...) = 0;
virtual void outCrash(const char* err, ...) = 0;
virtual void outBasic(const char* str, ...) = 0;
virtual void outDetail(const char* str, ...) = 0;
virtual void outSQLDev(const char* str, ...) = 0;
virtual void outDebug(DebugLogFilters f, const char* str, ...) = 0;
virtual void outStaticDebug(const char* str, ...) = 0;
virtual void outErrorDb(const char* str, ...) = 0;
virtual void outChar(const char* str, ...) = 0;
virtual void outCommand(uint32 account, const char* str, ...) = 0;
virtual void outChat(const char* str, ...) = 0;
virtual void outRemote(const char* str, ...) = 0;
virtual void outSQLDriver(const char* str, ...) = 0;
virtual void outMisc(const char* str, ...) = 0;
virtual void outCharDump(const char* str, uint32 account_id, uint32 guid, const char* name) = 0;
virtual void SetLogLevel(char* Level) = 0;
virtual void SetLogFileLevel(char* Level) = 0;
virtual void SetSQLDriverQueryLogging(bool newStatus) = 0;
virtual void SetRealmID(uint32 id) = 0;
virtual bool IsOutDebug() const = 0;
virtual bool IsOutCharDump() const = 0;
virtual bool GetLogDB() const = 0;
virtual void SetLogDB(bool enable) = 0;
virtual bool GetSQLDriverQueryLogging() const = 0;
};
#endif //AZEROTHCORE_ILOG_H
|