Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
Appender.cpp
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
#include "
Appender.h
"
7
#include "
Common.h
"
8
#include "
Platform/TimeUtils.h
"
9
10
std::string
LogMessage::getTimeStr
(time_t time)
11
{
12
tm aTm;
13
Skyfire::LocalTime
(time, aTm);
14
char
buf[72];
15
snprintf(buf,
sizeof
(buf),
"%04d-%02d-%02d_%02d:%02d:%02d"
, aTm.tm_year + 1900, aTm.tm_mon + 1, aTm.tm_mday, aTm.tm_hour, aTm.tm_min, aTm.tm_sec);
16
return
std::string(buf);
17
}
18
19
std::string
LogMessage::getTimeStr
()
20
{
21
return
getTimeStr
(
mtime
);
22
}
23
24
Appender::Appender
(
uint8
_id, std::string
const
& _name,
AppenderType
_type
/* = APPENDER_NONE*/
,
LogLevel
_level
/* = LOG_LEVEL_DISABLED */
,
AppenderFlags
_flags
/* = APPENDER_FLAGS_NONE */
) :
25
id
(_id),
name
(_name),
type
(_type),
level
(_level),
flags
(_flags) { }
26
27
Appender::~Appender
() { }
28
29
uint8
Appender::getId
()
const
30
{
31
return
id
;
32
}
33
34
std::string
const
&
Appender::getName
()
const
35
{
36
return
name
;
37
}
38
39
AppenderType
Appender::getType
()
const
40
{
41
return
type
;
42
}
43
44
LogLevel
Appender::getLogLevel
()
const
45
{
46
return
level
;
47
}
48
49
AppenderFlags
Appender::getFlags
()
const
50
{
51
return
flags
;
52
}
53
54
void
Appender::setLogLevel
(
LogLevel
_level)
55
{
56
level
= _level;
57
}
58
59
void
Appender::write
(
LogMessage
& message)
60
{
61
if
(
level
==
LogLevel::LOG_LEVEL_DISABLED
||
level
> message.
level
)
62
return
;
63
64
message.
prefix
.clear();
65
if
(
flags
&
APPENDER_FLAGS_PREFIX_TIMESTAMP
)
66
message.
prefix
.append(message.
getTimeStr
());
67
68
if
(
flags
&
APPENDER_FLAGS_PREFIX_LOGLEVEL
)
69
{
70
if
(!message.
prefix
.empty())
71
message.
prefix
.push_back(
' '
);
72
73
char
text[
MAX_QUERY_LEN
];
74
snprintf(text,
MAX_QUERY_LEN
,
"%-5s"
,
Appender::getLogLevelString
(message.
level
));
75
message.
prefix
.append(text);
76
}
77
78
if
(
flags
&
APPENDER_FLAGS_PREFIX_LOGFILTERTYPE
)
79
{
80
if
(!message.
prefix
.empty())
81
message.
prefix
.push_back(
' '
);
82
83
message.
prefix
.push_back(
'['
);
84
message.
prefix
.append(message.
type
);
85
message.
prefix
.push_back(
']'
);
86
}
87
88
if
(!message.
prefix
.empty())
89
message.
prefix
.push_back(
' '
);
90
91
_write
(message);
92
}
93
94
const
char
*
Appender::getLogLevelString
(
LogLevel
level
)
95
{
96
switch
(
level
)
97
{
98
case
LogLevel::LOG_LEVEL_FATAL
:
99
return
"FATAL"
;
100
case
LogLevel::LOG_LEVEL_ERROR
:
101
return
"ERROR"
;
102
case
LogLevel::LOG_LEVEL_WARN
:
103
return
"WARN"
;
104
case
LogLevel::LOG_LEVEL_INFO
:
105
return
"INFO"
;
106
case
LogLevel::LOG_LEVEL_DEBUG
:
107
return
"DEBUG"
;
108
case
LogLevel::LOG_LEVEL_TRACE
:
109
return
"TRACE"
;
110
default
:
111
return
"DISABLED"
;
112
}
113
}
Appender.h
AppenderType
AppenderType
Definition
Appender.h:29
AppenderFlags
AppenderFlags
Definition
Appender.h:37
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
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
Common.h
MAX_QUERY_LEN
#define MAX_QUERY_LEN
Definition
Common.h:195
uint8
std::uint8_t uint8
Definition
Define.h:79
TimeUtils.h
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
Skyfire::LocalTime
bool LocalTime(time_t const &time, tm &result)
Definition
TimeUtils.h:57
LogMessage
Definition
Appender.h:47
LogMessage::getTimeStr
static std::string getTimeStr(time_t time)
Definition
Appender.cpp:10
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::prefix
std::string prefix
Definition
Appender.h:58
src
server
shared
Logging
Appender.cpp
Generated on
for Project SkyFire Core by
1.17.0