summaryrefslogtreecommitdiff
path: root/src/utils/logger.cpp
diff options
context:
space:
mode:
authorHuynh Tran <nthuynh75@gmail.com>2005-06-19 09:05:46 +0000
committerHuynh Tran <nthuynh75@gmail.com>2005-06-19 09:05:46 +0000
commitf625c74501185e0ce8064ea704efc2eaeaf44e19 (patch)
tree2bf33c33e30ffac17ac62f4f60f4129aa039203a /src/utils/logger.cpp
parent8b9ecdf0b86890d34bab10e79a1ba46dcccd894e (diff)
downloadmanaserv-f625c74501185e0ce8064ea704efc2eaeaf44e19.tar.gz
manaserv-f625c74501185e0ce8064ea704efc2eaeaf44e19.tar.bz2
manaserv-f625c74501185e0ce8064ea704efc2eaeaf44e19.tar.xz
manaserv-f625c74501185e0ce8064ea704efc2eaeaf44e19.zip
Added tee mode to Logger.
Diffstat (limited to 'src/utils/logger.cpp')
-rw-r--r--src/utils/logger.cpp77
1 files changed, 71 insertions, 6 deletions
diff --git a/src/utils/logger.cpp b/src/utils/logger.cpp
index 5010ed66..bfba7abe 100644
--- a/src/utils/logger.cpp
+++ b/src/utils/logger.cpp
@@ -100,12 +100,32 @@ Logger::setTimestamp(bool flag)
/**
+ * Set tee mode.
+ */
+void
+Logger::setTeeMode(bool flag)
+ throw()
+{
+ mTeeMode = flag;
+}
+
+
+/**
* Log a generic message.
*/
void
Logger::log(const std::string& msg)
{
- log((mLogFile.is_open() ? mLogFile : std::cout), msg);
+ if (mTeeMode) {
+ log(std::cout, msg);
+
+ if (mLogFile.is_open()) {
+ log(mLogFile, msg);
+ }
+ }
+ else {
+ log((mLogFile.is_open() ? mLogFile : std::cout), msg);
+ }
}
@@ -115,7 +135,16 @@ Logger::log(const std::string& msg)
void
Logger::debug(const std::string& msg)
{
- log((mLogFile.is_open() ? mLogFile : std::cout), msg, "[DBG]");
+ if (mTeeMode) {
+ log(std::cout, msg, "[DBG]");
+
+ if (mLogFile.is_open()) {
+ log(mLogFile, msg, "[DBG]");
+ }
+ }
+ else {
+ log((mLogFile.is_open() ? mLogFile : std::cout), msg, "[DBG]");
+ }
}
@@ -125,7 +154,16 @@ Logger::debug(const std::string& msg)
void
Logger::info(const std::string& msg)
{
- log((mLogFile.is_open() ? mLogFile : std::cout), msg, "[INF]");
+ if (mTeeMode) {
+ log(std::cout, msg, "[INF]");
+
+ if (mLogFile.is_open()) {
+ log(mLogFile, msg, "[INF]");
+ }
+ }
+ else {
+ log((mLogFile.is_open() ? mLogFile : std::cout), msg, "[INF]");
+ }
}
@@ -135,7 +173,16 @@ Logger::info(const std::string& msg)
void
Logger::warn(const std::string& msg)
{
- log((mLogFile.is_open() ? mLogFile : std::cerr), msg, "[WRN]");
+ if (mTeeMode) {
+ log(std::cerr, msg, "[WRN]");
+
+ if (mLogFile.is_open()) {
+ log(mLogFile, msg, "[WRN]");
+ }
+ }
+ else {
+ log((mLogFile.is_open() ? mLogFile : std::cerr), msg, "[WRN]");
+ }
}
@@ -145,7 +192,16 @@ Logger::warn(const std::string& msg)
void
Logger::error(const std::string& msg)
{
- log((mLogFile.is_open() ? mLogFile : std::cerr), msg, "[ERR]");
+ if (mTeeMode) {
+ log(std::cerr, msg, "[ERR]");
+
+ if (mLogFile.is_open()) {
+ log(mLogFile, msg, "[ERR]");
+ }
+ }
+ else {
+ log((mLogFile.is_open() ? mLogFile : std::cerr), msg, "[ERR]");
+ }
}
@@ -155,7 +211,16 @@ Logger::error(const std::string& msg)
void
Logger::fatal(const std::string& msg)
{
- log((mLogFile.is_open() ? mLogFile : std::cerr), msg, "[FTL]");
+ if (mTeeMode) {
+ log(std::cerr, msg, "[FTL]");
+
+ if (mLogFile.is_open()) {
+ log(mLogFile, msg, "[FTL]");
+ }
+ }
+ else {
+ log((mLogFile.is_open() ? mLogFile : std::cerr), msg, "[FTL]");
+ }
#ifdef WIN32
MessageBox(NULL, msg.c_str(), "Fatal error", MB_ICONERROR | MB_OK);