aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Logging/AppenderConsole.cpp
diff options
context:
space:
mode:
authorStormBytePP <stormbyte@gmail.com>2015-08-19 19:02:10 +0200
committerStormBytePP <stormbyte@gmail.com>2015-08-21 17:52:42 +0200
commit1d2aafd39bcb79a67357d198ce9b2345642fdd39 (patch)
treec32cf1c3717625c60da59c82ba5a4fca2530119a /src/server/shared/Logging/AppenderConsole.cpp
parent172293acee1607727ebd8070ab3e1390590d02a8 (diff)
Core/Build: Merge common library and move database out of shared
Diffstat (limited to 'src/server/shared/Logging/AppenderConsole.cpp')
-rw-r--r--src/server/shared/Logging/AppenderConsole.cpp200
1 files changed, 0 insertions, 200 deletions
diff --git a/src/server/shared/Logging/AppenderConsole.cpp b/src/server/shared/Logging/AppenderConsole.cpp
deleted file mode 100644
index 531df266aa1..00000000000
--- a/src/server/shared/Logging/AppenderConsole.cpp
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Copyright (C) 2008-2015 TrinityCore <http://www.trinitycore.org/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sstream>
-
-#include "AppenderConsole.h"
-#include "Config.h"
-#include "Util.h"
-
-#if PLATFORM == PLATFORM_WINDOWS
- #include <Windows.h>
-#endif
-
-AppenderConsole::AppenderConsole(uint8 id, std::string const& name, LogLevel level, AppenderFlags flags, ExtraAppenderArgs extraArgs)
- : Appender(id, name, level, flags), _colored(false)
-{
- for (uint8 i = 0; i < MaxLogLevels; ++i)
- _colors[i] = ColorTypes(MaxColors);
-
- if (!extraArgs.empty())
- InitColors(extraArgs[0]);
-}
-
-void AppenderConsole::InitColors(std::string const& str)
-{
- if (str.empty())
- {
- _colored = false;
- return;
- }
-
- int color[MaxLogLevels];
-
- std::istringstream ss(str);
-
- for (uint8 i = 0; i < MaxLogLevels; ++i)
- {
- ss >> color[i];
-
- if (!ss)
- return;
-
- if (color[i] < 0 || color[i] >= MaxColors)
- return;
- }
-
- for (uint8 i = 0; i < MaxLogLevels; ++i)
- _colors[i] = ColorTypes(color[i]);
-
- _colored = true;
-}
-
-void AppenderConsole::SetColor(bool stdout_stream, ColorTypes color)
-{
-#if PLATFORM == PLATFORM_WINDOWS
- static WORD WinColorFG[MaxColors] =
- {
- 0, // BLACK
- FOREGROUND_RED, // RED
- FOREGROUND_GREEN, // GREEN
- FOREGROUND_RED | FOREGROUND_GREEN, // BROWN
- FOREGROUND_BLUE, // BLUE
- FOREGROUND_RED | FOREGROUND_BLUE, // MAGENTA
- FOREGROUND_GREEN | FOREGROUND_BLUE, // CYAN
- FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE, // WHITE
- // YELLOW
- FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY,
- // RED_BOLD
- FOREGROUND_RED | FOREGROUND_INTENSITY,
- // GREEN_BOLD
- FOREGROUND_GREEN | FOREGROUND_INTENSITY,
- FOREGROUND_BLUE | FOREGROUND_INTENSITY, // BLUE_BOLD
- // MAGENTA_BOLD
- FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY,
- // CYAN_BOLD
- FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY,
- // WHITE_BOLD
- FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY
- };
-
- HANDLE hConsole = GetStdHandle(stdout_stream ? STD_OUTPUT_HANDLE : STD_ERROR_HANDLE);
- SetConsoleTextAttribute(hConsole, WinColorFG[color]);
-#else
- enum ANSITextAttr
- {
- TA_NORMAL = 0,
- TA_BOLD = 1,
- TA_BLINK = 5,
- TA_REVERSE = 7
- };
-
- enum ANSIFgTextAttr
- {
- FG_BLACK = 30,
- FG_RED,
- FG_GREEN,
- FG_BROWN,
- FG_BLUE,
- FG_MAGENTA,
- FG_CYAN,
- FG_WHITE,
- FG_YELLOW
- };
-
- enum ANSIBgTextAttr
- {
- BG_BLACK = 40,
- BG_RED,
- BG_GREEN,
- BG_BROWN,
- BG_BLUE,
- BG_MAGENTA,
- BG_CYAN,
- BG_WHITE
- };
-
- static uint8 UnixColorFG[MaxColors] =
- {
- FG_BLACK, // BLACK
- FG_RED, // RED
- FG_GREEN, // GREEN
- FG_BROWN, // BROWN
- FG_BLUE, // BLUE
- FG_MAGENTA, // MAGENTA
- FG_CYAN, // CYAN
- FG_WHITE, // WHITE
- FG_YELLOW, // YELLOW
- FG_RED, // LRED
- FG_GREEN, // LGREEN
- FG_BLUE, // LBLUE
- FG_MAGENTA, // LMAGENTA
- FG_CYAN, // LCYAN
- FG_WHITE // LWHITE
- };
-
- fprintf((stdout_stream? stdout : stderr), "\x1b[%d%sm", UnixColorFG[color], (color >= YELLOW && color < MaxColors ? ";1" : ""));
- #endif
-}
-
-void AppenderConsole::ResetColor(bool stdout_stream)
-{
- #if PLATFORM == PLATFORM_WINDOWS
- HANDLE hConsole = GetStdHandle(stdout_stream ? STD_OUTPUT_HANDLE : STD_ERROR_HANDLE);
- SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);
- #else
- fprintf((stdout_stream ? stdout : stderr), "\x1b[0m");
- #endif
-}
-
-void AppenderConsole::_write(LogMessage const* message)
-{
- bool stdout_stream = !(message->level == LOG_LEVEL_ERROR || message->level == LOG_LEVEL_FATAL);
-
- if (_colored)
- {
- uint8 index;
- switch (message->level)
- {
- case LOG_LEVEL_TRACE:
- index = 5;
- break;
- case LOG_LEVEL_DEBUG:
- index = 4;
- break;
- case LOG_LEVEL_INFO:
- index = 3;
- break;
- case LOG_LEVEL_WARN:
- index = 2;
- break;
- case LOG_LEVEL_FATAL:
- index = 0;
- break;
- case LOG_LEVEL_ERROR: // No break on purpose
- default:
- index = 1;
- break;
- }
-
- SetColor(stdout_stream, _colors[index]);
- utf8printf(stdout_stream ? stdout : stderr, "%s%s\n", message->prefix.c_str(), message->text.c_str());
- ResetColor(stdout_stream);
- }
- else
- utf8printf(stdout_stream ? stdout : stderr, "%s%s\n", message->prefix.c_str(), message->text.c_str());
-}