mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-04-18 21:44:02 +03:00
110 lines
3.0 KiB
C++
110 lines
3.0 KiB
C++
/* Copyright (C) 2014 InfiniDB, Inc.
|
|
|
|
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; version 2 of
|
|
the License.
|
|
|
|
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, write to the Free Software
|
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
|
MA 02110-1301, USA. */
|
|
|
|
/*******************************************************************************
|
|
* $Id: we_simplesyslog.cpp 4607 2013-04-11 21:38:09Z rdempsey $
|
|
*
|
|
*******************************************************************************/
|
|
|
|
#include "we_simplesyslog.h"
|
|
|
|
#include "we_define.h"
|
|
#include "messagelog.h"
|
|
|
|
using namespace std;
|
|
|
|
namespace WriteEngine
|
|
{
|
|
/*static*/ SimpleSysLog* SimpleSysLog::fSysLogger = 0;
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Singleton instance accessor (Warning, not thread-safe)
|
|
//------------------------------------------------------------------------------
|
|
/* static */
|
|
SimpleSysLog* SimpleSysLog::instance()
|
|
{
|
|
if (!fSysLogger)
|
|
fSysLogger = new SimpleSysLog();
|
|
|
|
return fSysLogger;
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
// SimpleSysLog constructor.
|
|
//------------------------------------------------------------------------------
|
|
SimpleSysLog::SimpleSysLog() : fLoggingID(SUBSYSTEM_ID_WE)
|
|
{
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Reset LoggingID (in order to set the subsystem id)
|
|
//------------------------------------------------------------------------------
|
|
void SimpleSysLog::setLoggingID(const logging::LoggingID& loggingID)
|
|
{
|
|
fLoggingID = loggingID;
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Log arguments (msgArgs) for specified msgId to the requested log (logType).
|
|
//------------------------------------------------------------------------------
|
|
void SimpleSysLog::logMsg(const logging::Message::Args& msgArgs, logging::LOG_TYPE logType,
|
|
logging::Message::MessageID msgId)
|
|
{
|
|
logging::MessageLog ml(fLoggingID);
|
|
|
|
logging::Message m(msgId);
|
|
m.format(msgArgs);
|
|
|
|
boost::mutex::scoped_lock lk(fWriteLockMutex);
|
|
|
|
switch (logType)
|
|
{
|
|
case logging::LOG_TYPE_DEBUG:
|
|
{
|
|
ml.logDebugMessage(m);
|
|
break;
|
|
}
|
|
|
|
case logging::LOG_TYPE_INFO:
|
|
default:
|
|
{
|
|
ml.logInfoMessage(m);
|
|
break;
|
|
}
|
|
|
|
case logging::LOG_TYPE_WARNING:
|
|
{
|
|
ml.logWarningMessage(m);
|
|
break;
|
|
}
|
|
|
|
case logging::LOG_TYPE_ERROR:
|
|
{
|
|
ml.logErrorMessage(m);
|
|
break;
|
|
}
|
|
|
|
case logging::LOG_TYPE_CRITICAL:
|
|
{
|
|
ml.logCriticalMessage(m);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
} // namespace WriteEngine
|