1 /* Copyright (C) 2014 InfiniDB, Inc.
2
3 This program is free software; you can redistribute it and/or
4 modify it under the terms of the GNU General Public License
5 as published by the Free Software Foundation; version 2 of
6 the License.
7
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
12
13 You should have received a copy of the GNU General Public License
14 along with this program; if not, write to the Free Software
15 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
16 MA 02110-1301, USA. */
17
18 /*
19 * $Id: logger.cpp 4037 2013-08-07 03:37:31Z bwilkinson $
20 */
21
22 #include <string>
23 using namespace std;
24 #include <boost/thread.hpp>
25 using namespace boost;
26
27 #include "logger.h"
28
29 namespace logging
30 {
31
Logger(unsigned subsys)32 Logger::Logger(unsigned subsys) :
33 fMl1(LoggingID(subsys))
34 {
35 }
36
logMessage(LOG_TYPE logLevel,Message::MessageID mid,const Message::Args & args,const LoggingID & logInfo)37 const string Logger::logMessage(LOG_TYPE logLevel, Message::MessageID mid, const Message::Args& args,
38 const LoggingID& logInfo)
39 {
40 MsgMap::mapped_type msg;
41 MsgMap::const_iterator msgIter = fMsgMap.find(mid);
42
43 //Default message if specified # not found
44 if (msgIter == fMsgMap.end())
45 msg = Message(M0000);
46 else
47 msg = msgIter->second;
48
49 msg.reset();
50 msg.format(args);
51
52 return logMessage(logLevel, msg, logInfo);
53 /*
54 boost::mutex::scoped_lock lk(fLogLock);
55 fMl1.logData(logInfo);
56
57 switch (logLevel)
58 {
59 case LOG_TYPE_DEBUG:
60 default:
61 fMl1.logDebugMessage(msg);
62 break;
63 case LOG_TYPE_INFO:
64 fMl1.logInfoMessage(msg);
65 break;
66 case LOG_TYPE_WARNING:
67 fMl1.logWarningMessage(msg);
68 break;
69 case LOG_TYPE_ERROR:
70 fMl1.logErrorMessage(msg);
71 break;
72 case LOG_TYPE_CRITICAL:
73 fMl1.logCriticalMessage(msg);
74 break;
75 }
76
77 return msg.msg();*/
78 }
79
logMessage(LOG_TYPE logLevel,const Message & msg,const LoggingID & logInfo)80 const std::string Logger::logMessage(LOG_TYPE logLevel, const Message& msg, const LoggingID& logInfo)
81 {
82 boost::mutex::scoped_lock lk(fLogLock);
83 fMl1.logData(logInfo);
84
85 switch (logLevel)
86 {
87 case LOG_TYPE_DEBUG:
88 default:
89 fMl1.logDebugMessage(msg);
90 break;
91
92 case LOG_TYPE_INFO:
93 fMl1.logInfoMessage(msg);
94 break;
95
96 case LOG_TYPE_WARNING:
97 fMl1.logWarningMessage(msg);
98 break;
99
100 case LOG_TYPE_ERROR:
101 fMl1.logErrorMessage(msg);
102 break;
103
104 case LOG_TYPE_CRITICAL:
105 fMl1.logCriticalMessage(msg);
106 break;
107 }
108
109 return msg.msg();
110 }
111
112 }
113
114