Project SkyFire Core
SkyFire 5.4.8 server core API documentation
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"
11#include <time.h>
12
13#include <string>
14
25
27
35
45
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
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
70{
71public:
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
82 void write(LogMessage& message);
83 static const char* getLogLevelString(LogLevel level);
84
85private:
86 virtual void _write(LogMessage const& /*message*/) = 0;
87
89 std::string name;
93};
94
96
97#endif
AppenderType
Definition Appender.h:29
@ APPENDER_CONSOLE
Definition Appender.h:31
AppenderFlags
Definition Appender.h:37
@ APPENDER_FLAGS_NONE
Definition Appender.h:38
@ APPENDER_FLAGS_MAKE_FILE_BACKUP
Definition Appender.h:43
@ APPENDER_FLAGS_USE_TIMESTAMP
Definition Appender.h:42
@ APPENDER_FLAGS_PREFIX_TIMESTAMP
Definition Appender.h:39
@ APPENDER_FLAGS_PREFIX_LOGFILTERTYPE
Definition Appender.h:41
@ APPENDER_FLAGS_PREFIX_LOGLEVEL
Definition Appender.h:40
const uint8 MaxLogLevels
Definition Appender.h:26
LogLevel
Definition Appender.h:16
@ LOG_LEVEL_DISABLED
Definition Appender.h:17
@ LOG_LEVEL_TRACE
Definition Appender.h:18
@ LOG_LEVEL_WARN
Definition Appender.h:21
@ LOG_LEVEL_ERROR
Definition Appender.h:22
@ LOG_LEVEL_INFO
Definition Appender.h:20
@ LOG_LEVEL_FATAL
Definition Appender.h:23
@ LOG_LEVEL_DEBUG
Definition Appender.h:19
UNORDERED_MAP< uint8, Appender * > AppenderMap
Definition Appender.h:95
std::uint8_t uint8
Definition Define.h:79
std::uint32_t uint32
Definition Define.h:77
#define UNORDERED_MAP
LogLevel getLogLevel() const
Definition Appender.cpp:44
std::string name
Definition Appender.h:89
virtual void _write(LogMessage const &)=0
uint8 id
Definition Appender.h:88
LogLevel level
Definition Appender.h:91
AppenderType getType() const
Definition Appender.cpp:39
AppenderFlags getFlags() const
Definition Appender.cpp:49
AppenderType type
Definition Appender.h:90
uint8 getId() const
Definition Appender.cpp:29
virtual ~Appender()
Definition Appender.cpp:27
std::string const & getName() const
Definition Appender.cpp:34
AppenderFlags flags
Definition Appender.h:92
static const char * getLogLevelString(LogLevel level)
Definition Appender.cpp:94
void write(LogMessage &message)
Definition Appender.cpp:59
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
void setLogLevel(LogLevel)
Definition Appender.cpp:54
std::string type
Definition Appender.h:56
std::string getTimeStr()
Definition Appender.cpp:19
time_t mtime
Definition Appender.h:60
LogLevel level
Definition Appender.h:55
LogMessage(LogLevel _level, std::string const &_type, std::string const &_text)
Definition Appender.h:48
std::string text
Definition Appender.h:57
uint32 Size() const
@ Returns size of the log message content in bytes
Definition Appender.h:63
std::string param1
Definition Appender.h:59
std::string prefix
Definition Appender.h:58