Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
Appender.h
Go to the documentation of this file.
1
/*
2
* This file is part of Project SkyFire https://www.projectskyfire.org.
3
* See LICENSE.md file for Copyright information
4
*/
5
6
#ifndef APPENDER_H
7
#define APPENDER_H
8
9
#include "
Define.h
"
10
#include "
Dynamic/UnorderedMap.h
"
11
#include <time.h>
12
13
#include <string>
14
15
enum class
LogLevel
16
{
17
LOG_LEVEL_DISABLED
= 0,
18
LOG_LEVEL_TRACE
= 1,
19
LOG_LEVEL_DEBUG
= 2,
20
LOG_LEVEL_INFO
= 3,
21
LOG_LEVEL_WARN
= 4,
22
LOG_LEVEL_ERROR
= 5,
23
LOG_LEVEL_FATAL
= 6
24
};
25
26
const
uint8
MaxLogLevels
= 6;
27
28
enum class
AppenderType
29
{
30
APPENDER_NONE
,
31
APPENDER_CONSOLE
,
32
APPENDER_FILE
,
33
APPENDER_DB
34
};
35
36
enum
AppenderFlags
37
{
38
APPENDER_FLAGS_NONE
= 0x00,
39
APPENDER_FLAGS_PREFIX_TIMESTAMP
= 0x01,
40
APPENDER_FLAGS_PREFIX_LOGLEVEL
= 0x02,
41
APPENDER_FLAGS_PREFIX_LOGFILTERTYPE
= 0x04,
42
APPENDER_FLAGS_USE_TIMESTAMP
= 0x08,
// only used by FileAppender
43
APPENDER_FLAGS_MAKE_FILE_BACKUP
= 0x10
// only used by FileAppender
44
};
45
46
struct
LogMessage
47
{
48
LogMessage
(
LogLevel
_level, std::string
const
& _type, std::string
const
& _text)
49
:
level
(_level),
type
(_type),
text
(_text),
mtime
(time(NULL))
50
{ }
51
52
static
std::string
getTimeStr
(time_t time);
53
std::string
getTimeStr
();
54
55
LogLevel
level
;
56
std::string
type
;
57
std::string
text
;
58
std::string
prefix
;
59
std::string
param1
;
60
time_t
mtime
;
61
63
uint32
Size
()
const
64
{
65
return
static_cast<
uint32
>
(
prefix
.size() +
text
.size());
66
}
67
};
68
69
class
Appender
70
{
71
public
:
72
Appender
(
uint8
_id, std::string
const
&
name
,
AppenderType
type
=
AppenderType::APPENDER_NONE
,
LogLevel
level
=
LogLevel::LOG_LEVEL_DISABLED
,
AppenderFlags
flags
=
APPENDER_FLAGS_NONE
);
73
virtual
~Appender
();
74
75
uint8
getId
()
const
;
76
std::string
const
&
getName
()
const
;
77
AppenderType
getType
()
const
;
78
LogLevel
getLogLevel
()
const
;
79
AppenderFlags
getFlags
()
const
;
80
81
void
setLogLevel
(
LogLevel
);
82
void
write
(
LogMessage
& message);
83
static
const
char
*
getLogLevelString
(
LogLevel
level
);
84
85
private
:
86
virtual
void
_write
(
LogMessage
const
&
/*message*/
) = 0;
87
88
uint8
id
;
89
std::string
name
;
90
AppenderType
type
;
91
LogLevel
level
=
LogLevel::LOG_LEVEL_DISABLED
;
92
AppenderFlags
flags
;
93
};
94
95
typedef
UNORDERED_MAP<uint8, Appender*>
AppenderMap
;
96
97
#endif
AppenderType
AppenderType
Definition
Appender.h:29
AppenderType::APPENDER_CONSOLE
@ APPENDER_CONSOLE
Definition
Appender.h:31
AppenderType::APPENDER_NONE
@ APPENDER_NONE
Definition
Appender.h:30
AppenderType::APPENDER_FILE
@ APPENDER_FILE
Definition
Appender.h:32
AppenderType::APPENDER_DB
@ APPENDER_DB
Definition
Appender.h:33
AppenderFlags
AppenderFlags
Definition
Appender.h:37
APPENDER_FLAGS_NONE
@ APPENDER_FLAGS_NONE
Definition
Appender.h:38
APPENDER_FLAGS_MAKE_FILE_BACKUP
@ APPENDER_FLAGS_MAKE_FILE_BACKUP
Definition
Appender.h:43
APPENDER_FLAGS_USE_TIMESTAMP
@ APPENDER_FLAGS_USE_TIMESTAMP
Definition
Appender.h:42
APPENDER_FLAGS_PREFIX_TIMESTAMP
@ APPENDER_FLAGS_PREFIX_TIMESTAMP
Definition
Appender.h:39
APPENDER_FLAGS_PREFIX_LOGFILTERTYPE
@ APPENDER_FLAGS_PREFIX_LOGFILTERTYPE
Definition
Appender.h:41
APPENDER_FLAGS_PREFIX_LOGLEVEL
@ APPENDER_FLAGS_PREFIX_LOGLEVEL
Definition
Appender.h:40
MaxLogLevels
const uint8 MaxLogLevels
Definition
Appender.h:26
LogLevel
LogLevel
Definition
Appender.h:16
LogLevel::LOG_LEVEL_DISABLED
@ LOG_LEVEL_DISABLED
Definition
Appender.h:17
LogLevel::LOG_LEVEL_TRACE
@ LOG_LEVEL_TRACE
Definition
Appender.h:18
LogLevel::LOG_LEVEL_WARN
@ LOG_LEVEL_WARN
Definition
Appender.h:21
LogLevel::LOG_LEVEL_ERROR
@ LOG_LEVEL_ERROR
Definition
Appender.h:22
LogLevel::LOG_LEVEL_INFO
@ LOG_LEVEL_INFO
Definition
Appender.h:20
LogLevel::LOG_LEVEL_FATAL
@ LOG_LEVEL_FATAL
Definition
Appender.h:23
LogLevel::LOG_LEVEL_DEBUG
@ LOG_LEVEL_DEBUG
Definition
Appender.h:19
AppenderMap
UNORDERED_MAP< uint8, Appender * > AppenderMap
Definition
Appender.h:95
Define.h
uint8
std::uint8_t uint8
Definition
Define.h:79
uint32
std::uint32_t uint32
Definition
Define.h:77
UnorderedMap.h
UNORDERED_MAP
#define UNORDERED_MAP
Definition
UnorderedMap.h:58
Appender::getLogLevel
LogLevel getLogLevel() const
Definition
Appender.cpp:44
Appender::name
std::string name
Definition
Appender.h:89
Appender::_write
virtual void _write(LogMessage const &)=0
Appender::id
uint8 id
Definition
Appender.h:88
Appender::level
LogLevel level
Definition
Appender.h:91
Appender::getType
AppenderType getType() const
Definition
Appender.cpp:39
Appender::getFlags
AppenderFlags getFlags() const
Definition
Appender.cpp:49
Appender::type
AppenderType type
Definition
Appender.h:90
Appender::getId
uint8 getId() const
Definition
Appender.cpp:29
Appender::~Appender
virtual ~Appender()
Definition
Appender.cpp:27
Appender::getName
std::string const & getName() const
Definition
Appender.cpp:34
Appender::flags
AppenderFlags flags
Definition
Appender.h:92
Appender::getLogLevelString
static const char * getLogLevelString(LogLevel level)
Definition
Appender.cpp:94
Appender::write
void write(LogMessage &message)
Definition
Appender.cpp:59
Appender::Appender
Appender(uint8 _id, std::string const &name, AppenderType type=AppenderType::APPENDER_NONE, LogLevel level=LogLevel::LOG_LEVEL_DISABLED, AppenderFlags flags=APPENDER_FLAGS_NONE)
Definition
Appender.cpp:24
Appender::setLogLevel
void setLogLevel(LogLevel)
Definition
Appender.cpp:54
LogMessage
Definition
Appender.h:47
LogMessage::type
std::string type
Definition
Appender.h:56
LogMessage::getTimeStr
std::string getTimeStr()
Definition
Appender.cpp:19
LogMessage::mtime
time_t mtime
Definition
Appender.h:60
LogMessage::level
LogLevel level
Definition
Appender.h:55
LogMessage::LogMessage
LogMessage(LogLevel _level, std::string const &_type, std::string const &_text)
Definition
Appender.h:48
LogMessage::text
std::string text
Definition
Appender.h:57
LogMessage::Size
uint32 Size() const
@ Returns size of the log message content in bytes
Definition
Appender.h:63
LogMessage::param1
std::string param1
Definition
Appender.h:59
LogMessage::prefix
std::string prefix
Definition
Appender.h:58
src
server
shared
Logging
Appender.h
Generated on
for Project SkyFire Core by
1.17.0