TrinityCore
Loading...
Searching...
No Matches
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.push_back(appender);
37}
38
40{
41 level = _level;
42}
43
44void Logger::write(LogMessage* message) const
45{
46 if (!level || level > message->level || message->text.empty())
47 {
48 //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);
49 return;
50 }
51
52 for (Appender* appender : appenders)
53 appender->write(message);
54}
LogLevel
Definition LogCommon.h:25
void setLogLevel(LogLevel level)
Definition Logger.cpp:39
void write(LogMessage *message) const
Definition Logger.cpp:44
LogLevel level
Definition Logger.h:43
std::vector< Appender * > appenders
Definition Logger.h:44
Logger(std::string const &name, LogLevel level)
Definition Logger.cpp:22
LogLevel getLogLevel() const
Definition Logger.cpp:29
std::string name
Definition Logger.h:42
void addAppender(Appender *appender)
Definition Logger.cpp:34
std::string const & getName() const
Definition Logger.cpp:24
LogLevel const level
Definition LogMessage.h:37
std::string const text
Definition LogMessage.h:39