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