2 Copyright 2004-2005 Chris Tallon
\r
3 Copyright 2003-2004 University Of Bradford
\r
5 This file is part of VOMP.
\r
7 VOMP is free software; you can redistribute it and/or modify
\r
8 it under the terms of the GNU General Public License as published by
\r
9 the Free Software Foundation; either version 2 of the License, or
\r
10 (at your option) any later version.
\r
12 VOMP is distributed in the hope that it will be useful,
\r
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
15 GNU General Public License for more details.
\r
17 You should have received a copy of the GNU General Public License
\r
18 along with VOMP; if not, write to the Free Software
\r
19 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
\r
28 #include <sys/time.h>
\r
30 #include <sys/timeb.h>
\r
36 #include <sys/types.h>
\r
37 #include "defines.h"
\r
40 class ExternLogger {
\r
42 virtual bool LogExtern(const char* message)=0;
\r
51 static Log* getInstance();
\r
53 int init(int defaultLevel,const char* fileName, int enabled);
\r
55 int log(const char *fromModule, int level,const char *message, ...);
\r
56 void logLongString(const char *fromModule, int level,const char *message);
\r
59 void downLogLevel();
\r
60 void setExternLogger(ExternLogger* log);
\r
61 void unsetExternLogger() {
\r
67 const static int CRAZY = 0; // mad crazy things that should never happen
\r
68 const static int EMERG = 1; // human assist required NOW
\r
69 const static int ALERT = 2; // system unusable, but happy to sit there
\r
70 const static int CRIT = 3; // still working, but maybe about to die
\r
71 const static int ERR = 4; // that response is not even listed...
\r
72 const static int WARN = 5; // this could be a bad thing. still running tho
\r
73 const static int NOTICE = 6; // significant good thing
\r
74 const static int INFO = 7; // verbose good thing
\r
75 const static int DEBUG = 8; // debug-level messages
\r
78 static Log* instance;
\r
85 ExternLogger* extlog;
\r
97 This class is intended to be instatiated once by the core.
\r
100 Log::getInstance()->log("<module-name>", Log::<levelname>, "<message>");
\r
102 Or, a pointer can be stored and used:
\r
104 Log *myptr = Log::getInstance();
\r
106 myptr->log("<module-name>", Log::<levelname>, "<message>");
\r
107 myptr->log("<module-name>", Log::<levelname>, "<message>");
\r
109 Level usages are above.
\r
111 The message parameter in the log function can be used in the same way as printf, eg.
\r
113 myptr->log("<module-name>", Log::<levelname>, "Success: %s %i", stringpointer, integer);
\r