TrinityCore
Logger.cpp
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#include "Logger.h"
19#include "Appender.h"
20#include "LogMessage.h"
21
22Logger::Logger(std::string const& _name, LogLevel _level): name(_name), level(_level) { }
23
24std::string const& Logger::getName() const
25{
26 return name;
27}
28
30{
31 return level;
32}
33
35{
36 appenders[id] = appender;
37}
38
40{
41 appenders.erase(id);
42}
43
45{
46 level = _level;
47}
48
49void Logger::write(LogMessage* message) const
50{
51 if (!level || level > message->level || message->text.empty())
52 {
53 //fprintf(stderr, "Logger::write: Logger %s, Level %u. Msg %s Level %u WRONG LEVEL MASK OR EMPTY MSG\n", getName().c_str(), getLogLevel(), message.text.c_str(), message.level);
54 return;
55 }
56
57 for (std::pair<uint8 const, Appender*> const& appender : appenders)
58 if (appender.second)
59 appender.second->write(message);
60}
uint8_t uint8
Definition: Define.h:144
LogLevel
Definition: LogCommon.h:25
void setLogLevel(LogLevel level)
Definition: Logger.cpp:44
void delAppender(uint8 type)
Definition: Logger.cpp:39
void write(LogMessage *message) const
Definition: Logger.cpp:49
LogLevel level
Definition: Logger.h:44
Logger(std::string const &name, LogLevel level)
Definition: Logger.cpp:22
std::unordered_map< uint8, Appender * > appenders
Definition: Logger.h:45
void addAppender(uint8 type, Appender *appender)
Definition: Logger.cpp:34
LogLevel getLogLevel() const
Definition: Logger.cpp:29
std::string name
Definition: Logger.h:43
std::string const & getName() const
Definition: Logger.cpp:24
LogLevel const level
Definition: LogMessage.h:37
std::string const text
Definition: LogMessage.h:39