Mass++ Common Libraries v2.7.5
 All Classes Namespaces Files Functions Variables Enumerations Macros
Macros | Functions
LogFunctions.h File Reference

interfaces of log function More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define LOG_LEVEL_NONE   0
 
#define LOG_LEVEL_FATAL   1
 
#define LOG_LEVEL_ERROR   2
 
#define LOG_LEVEL_WARN   3
 
#define LOG_LEVEL_INFO   4
 
#define LOG_LEVEL_DEBUG   5
 
#define LOG_LEVEL_TRACE   6
 
#define MIN_LOG_LEVEL   0
 
#define MAX_LOG_LEVEL   6
 
#define OUTPUT_LOG(msg, level)
 
#define LOG_FATAL_CODE(msg, code)   logfatalcode( code, msg.c_str(), NULL, -1 )
 
#define LOG_ERROR_CODE(msg, code)   logerrorcode( code, msg.c_str(), NULL, -1 )
 
#define LOG_WARN_CODE(msg, code)   logwarncode( code, msg.c_str(), NULL, -1 )
 
#define LOG_INFO_CODE(msg, code)   loginfocode( code, msg.c_str(), NULL, -1 )
 
#define LOG_DEBUG_CODE(msg, code)   logdebugcode( code, msg.c_str(), NULL, -1 )
 
#define LOG_TRACE_CODE(msg, code)   logtracecode( code, msg.c_str(), NULL, -1 )
 
#define LOG_FATAL(msg)   OUTPUT_LOG( msg.c_str(), LOG_LEVEL_FATAL )
 
#define LOG_ERROR(msg)   OUTPUT_LOG( msg.c_str(), LOG_LEVEL_ERROR )
 
#define LOG_WARN(msg)   OUTPUT_LOG( msg.c_str(), LOG_LEVEL_WARN )
 
#define LOG_INFO(msg)   OUTPUT_LOG( msg.c_str(), LOG_LEVEL_INFO )
 
#define LOG_DEBUG(msg)   OUTPUT_LOG( msg.c_str(), LOG_LEVEL_DEBUG )
 
#define LOG_TRACE(msg)   OUTPUT_LOG( msg.c_str(), LOG_LEVEL_TRACE )
 

Functions

void setloglevel (int level)
 set log level More...
 
int getloglevel ()
 get log level More...
 
int getlasterror ()
 get last error code More...
 
const char * getlasterrormessage ()
 get last error message More...
 
void seterrorcode (int code, const char *msg)
 set error code More...
 
void outputlog (const char *msg, int level, const char *file=NULL, int line=-1)
 output log More...
 
void logfatal (const char *msg, const char *file=NULL, int line=-1)
 output fatal log More...
 
void logfatalcode (int code, const char *msg, const char *file=NULL, int line=-1)
 output fatal log and set error code More...
 
void logerror (const char *msg, const char *file=NULL, int line=-1)
 output error log More...
 
void logerrorcode (int code, const char *msg, const char *file=NULL, int line=-1)
 output error log and set error code More...
 
void logwarn (const char *msg, const char *file=NULL, int line=-1)
 output warning log More...
 
void logwarncode (int code, const char *msg, const char *file=NULL, int line=-1)
 output warning log and set error code More...
 
void loginfo (const char *msg, const char *file=NULL, int line=-1)
 output information log More...
 
void loginfocode (int code, const char *msg, const char *file=NULL, int line=-1)
 output information log and set error code More...
 
void logdebug (const char *msg, const char *file=NULL, int line=-1)
 output debug log More...
 
void logdebugcode (int code, const char *msg, const char *file=NULL, int line=-1)
 output debug log and set error code More...
 
void logtrace (const char *msg, const char *file=NULL, int line=-1)
 output trace log More...
 
void logtracecode (int code, const char *msg, const char *file=NULL, int line=-1)
 output trace log and set error code More...
 
void setloglistsize (const int size)
 sets log list size More...
 
int getloglistsize ()
 gets log list size More...
 
void logflush ()
 flushes logs to be stored in the list
 
void setoutputlogfunction (void(*outputLogFun)(const char *, int))
 set output log function More...
 

Detailed Description

interfaces of log function

Author
S.Tanaka
Date
2006.06.26

Copyright(C) 2006-2014 Eisai Co., Ltd. All rights reserved.

Definition in file LogFunctions.h.

Macro Definition Documentation

#define OUTPUT_LOG (   msg,
  level 
)
Value:
{ \
if( level <= getloglevel() ) { \
outputlog( msg, level, NULL, -1 ); \
} \
}
void outputlog(const char *msg, int level, const char *file=NULL, int line=-1)
output log
#define NULL
Definition: CoreMacros.h:18
int getloglevel()
get log level

Definition at line 43 of file LogFunctions.h.

Function Documentation

int getlasterror ( )

get last error code

Returns
error code

Definition at line 90 of file LogFunctions.cpp.

90  {
91  return g_errorCode;
92 }
int g_errorCode
const char* getlasterrormessage ( )

get last error message

Returns
last error message

Definition at line 95 of file LogFunctions.cpp.

95  {
96 
98 
99  // Delete the error message after it has been used.
100  seterrorcode(-1, NULL);
101 
102  return g_tmperrorMessage.c_str();
103 }
std::string g_errorMessage
#define NULL
Definition: CoreMacros.h:18
void seterrorcode(int code, const char *msg)
set error code
std::string g_tmperrorMessage

Here is the call graph for this function:

int getloglevel ( )

get log level

Returns
log level

Definition at line 85 of file LogFunctions.cpp.

85  {
86  return g_logLevel;
87 }
int g_logLevel
int getloglistsize ( )

gets log list size

Returns
log lost size (If return value is negative, log list is unbounded.)

Definition at line 231 of file LogFunctions.cpp.

231  {
232  return g_logListSize;
233 }
int g_logListSize
void logdebug ( const char *  msg,
const char *  file,
int  line 
)

output debug log

Parameters
[in]msglog message
[in]filesource file name
[in]lineline number

Definition at line 198 of file LogFunctions.cpp.

198  {
199  outputlog( msg, LOG_LEVEL_DEBUG, file, line );
200 }
void outputlog(const char *msg, int level, const char *file, int line)
output log

Here is the call graph for this function:

void logdebugcode ( int  code,
const char *  msg,
const char *  file,
int  line 
)

output debug log and set error code

Parameters
[in]codeerror code
[in]msglog message
[in]filesource file name
[in]lineline number

Definition at line 202 of file LogFunctions.cpp.

202  {
203  seterrorcode( code, msg );
204  logdebug( msg, file, line );
205 }
void logdebug(const char *msg, const char *file, int line)
output debug log
void seterrorcode(int code, const char *msg)
set error code

Here is the call graph for this function:

void logerror ( const char *  msg,
const char *  file,
int  line 
)

output error log

Parameters
msglog message
filesource file name
lineline number

Definition at line 168 of file LogFunctions.cpp.

168  {
169  outputlog( msg, LOG_LEVEL_ERROR, file, line );
170 }
void outputlog(const char *msg, int level, const char *file, int line)
output log

Here is the call graph for this function:

void logerrorcode ( int  code,
const char *  msg,
const char *  file,
int  line 
)

output error log and set error code

Parameters
[in]codeerror code
[in]msglog message
[in]filesource file name
[in]lineline number

Definition at line 172 of file LogFunctions.cpp.

172  {
173  seterrorcode( code, msg );
174  logerror( msg, file, line );
175 }
void logerror(const char *msg, const char *file, int line)
output error log
void seterrorcode(int code, const char *msg)
set error code

Here is the call graph for this function:

void logfatal ( const char *  msg,
const char *  file,
int  line 
)

output fatal log

Parameters
[in]msglog message
[in]filesource file name
[in]lineline number

Definition at line 158 of file LogFunctions.cpp.

158  {
159  outputlog( msg, LOG_LEVEL_FATAL, file, line );
160 }
void outputlog(const char *msg, int level, const char *file, int line)
output log

Here is the call graph for this function:

void logfatalcode ( int  code,
const char *  msg,
const char *  file,
int  line 
)

output fatal log and set error code

Parameters
[in]codeerror code
[in]msglog message
[in]filesource file name
[in]lineline number

Definition at line 162 of file LogFunctions.cpp.

162  {
163  seterrorcode( code, msg );
164  logfatal( msg, file, line );
165 }
void logfatal(const char *msg, const char *file, int line)
output fatal log
void seterrorcode(int code, const char *msg)
set error code

Here is the call graph for this function:

void loginfo ( const char *  msg,
const char *  file,
int  line 
)

output information log

Parameters
[in]msglog message
[in]filesource file name
[in]lineline number

Definition at line 188 of file LogFunctions.cpp.

188  {
189  outputlog( msg, LOG_LEVEL_INFO, file, line );
190 }
void outputlog(const char *msg, int level, const char *file, int line)
output log

Here is the call graph for this function:

void loginfocode ( int  code,
const char *  msg,
const char *  file,
int  line 
)

output information log and set error code

Parameters
[in]codeerror code
[in]msglog message
[in]filesource file name
[in]lineline number

Definition at line 192 of file LogFunctions.cpp.

192  {
193  seterrorcode( code, msg );
194  loginfo( msg, file, line );
195 }
void seterrorcode(int code, const char *msg)
set error code
void loginfo(const char *msg, const char *file, int line)
output information log

Here is the call graph for this function:

void logtrace ( const char *  msg,
const char *  file,
int  line 
)

output trace log

Parameters
[in]msglog message
[in]filesource file name
[in]lineline number

Definition at line 208 of file LogFunctions.cpp.

208  {
209  outputlog( msg, LOG_LEVEL_TRACE, file, line );
210 }
void outputlog(const char *msg, int level, const char *file, int line)
output log

Here is the call graph for this function:

void logtracecode ( int  code,
const char *  msg,
const char *  file,
int  line 
)

output trace log and set error code

Parameters
[in]codeerror code
[in]msglog message
[in]filesource file name
[in]lineline number

Definition at line 212 of file LogFunctions.cpp.

212  {
213  seterrorcode( code, msg );
214  logtrace( msg, file, line );
215 }
void seterrorcode(int code, const char *msg)
set error code
void logtrace(const char *msg, const char *file, int line)
output trace log

Here is the call graph for this function:

void logwarn ( const char *  msg,
const char *  file,
int  line 
)

output warning log

Parameters
[in]msglog message
[in]filesource file name
[in]lineline number

Definition at line 178 of file LogFunctions.cpp.

178  {
179  outputlog( msg, LOG_LEVEL_WARN, file, line );
180 }
void outputlog(const char *msg, int level, const char *file, int line)
output log

Here is the call graph for this function:

void logwarncode ( int  code,
const char *  msg,
const char *  file,
int  line 
)

output warning log and set error code

Parameters
[in]codeerror code
[in]msglog message
[in]filesource file name
[in]lineline number

Definition at line 182 of file LogFunctions.cpp.

182  {
183  seterrorcode( code, msg );
184  logwarn( msg, file, line );
185 }
void logwarn(const char *msg, const char *file, int line)
output warning log
void seterrorcode(int code, const char *msg)
set error code

Here is the call graph for this function:

void outputlog ( const char *  msg,
int  level,
const char *  file,
int  line 
)

output log

Parameters
[in]msglog message
[in]levellog level
[in]filefile name
[in]lineline number

Definition at line 106 of file LogFunctions.cpp.

106  {
107  // check log level and message
108  level = CLAMP( level, MIN_LOG_LEVEL, MAX_LOG_LEVEL );
109  if( g_logLevel < level ) {
110  return;
111  }
112 
113  // create message
114  std::string s = std::string( LOG_HEADERS[ level ] );
115  if( file != NULL ) {
116  s += " ";
117  s += getfilename( file );
118  }
119  if( line >= 0 ) {
120  s += strfmt( "(%d)", line );
121  }
122  if( msg != NULL ) {
123  if( file == NULL && line < 0 ) {
124  s += strfmt( "%s", msg );
125  }
126  else {
127  s += strfmt( " - %s ", msg );
128  }
129  }
130 
131  // output log
132  if( g_outputLogFun != NULL ) {
133  (*g_outputLogFun)( s.c_str(), level );
134  }
135 
136  // add to list
137  if( g_logListSize != 0 ) {
138  std::pair< int, std::string > logInfo = std::make_pair( level, s );
139  g_logList.push_back( logInfo );
140 
142  }
143 }
std::string getfilename(const char *path)
get file name
int g_logListSize
std::string strfmt(const char *fmt,...)
get formated string
void(* g_outputLogFun)(const char *, int)
#define NULL
Definition: CoreMacros.h:18
#define CLAMP(x, low, high)
Definition: CoreMacros.h:35
std::list< std::pair< int, std::string > > g_logList
int g_logLevel
void setloglistsize(const int size)
sets log list size

Here is the call graph for this function:

void seterrorcode ( int  code,
const char *  msg 
)

set error code

Parameters
[in]codeerror code
[in]msgmessage

Definition at line 146 of file LogFunctions.cpp.

146  {
147  g_errorCode = code;
148 
149  if( msg == NULL ) {
150  g_errorMessage.clear();
151  }
152  else {
153  g_errorMessage = std::string( msg );
154  }
155 }
std::string g_errorMessage
int g_errorCode
#define NULL
Definition: CoreMacros.h:18
void setloglevel ( int  level)

set log level

Parameters
[in]levellog level

Definition at line 71 of file LogFunctions.cpp.

71  {
72  // check parameter
73  if( level < MIN_LOG_LEVEL ) {
74  level = MIN_LOG_LEVEL;
75  }
76  if( level > MAX_LOG_LEVEL ) {
77  level = MAX_LOG_LEVEL;
78  }
79 
80  // set parameter
81  g_logLevel = level;
82 }
int g_logLevel
void setloglistsize ( const int  size)

sets log list size

Parameters
[in]sizelog list size (If size is negative, log list is unbounded.)

Definition at line 218 of file LogFunctions.cpp.

218  {
219  // set to variable
220  g_logListSize = MAX( size, -1 );
221 
222  // check size
223  if( size > 0 ) {
224  while( (int)g_logList.size() > size ) {
225  g_logList.pop_front();
226  }
227  }
228 }
int g_logListSize
#define MAX(x, y)
Definition: CoreMacros.h:27
std::list< std::pair< int, std::string > > g_logList
void setoutputlogfunction ( void(*)(const char *, int)  outputLogFun)

set output log function

Parameters
[in]outputLogFunthe pointer to output log function. Its arguments are log message (const char*) and log level (int)

Definition at line 248 of file LogFunctions.cpp.

248  {
249  g_outputLogFun = outputLogFun;
250 }
void(* g_outputLogFun)(const char *, int)