GCpp general purpose C++ library  version 1.0
GLogMessage.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file GLogMessage.hh
3  *
4  * Include file for the GLogMessage class
5  */
6 //======================================================================
7 
8 #ifndef G_LOG_MESSAGE_HH
9 #define G_LOG_MESSAGE_HH
10 
11 #include "GGlobal.hh"
12 #include "GBaseFunctions.hh"
13 #include "GStringFunctions.hh"
14 
15 //======================================================================
16 // Short-cut functions
17 
18 extern void GSetVerboseLevel ( u_int v ); // inline
19 extern u_int GGetVerboseLevel ( ); // inline
20 
21 extern void GSetLogFile ( const string & fname, bool term = true ); // inline
22 extern void GCloseLogFile ( ); // inline
23 
24 extern void GLogMessage ( const string & text, u_int verb = 0 ); // inline
25 extern void GLogMessage ( const string & text, u_int verb, u_int ref_level ); // inline
26 extern void GLogInfo ( const string & text ); // inline
27 extern void GLogWarning ( const string & text ); // inline
28 extern void GLogError ( const string & text,
29  bool abort = true ); // inline
30 
31 extern void GLogMessage ( ostream & os, const string & text, u_int verb = 0 ); // inline
32 extern void GLogInfo ( ostream & os, const string & text ); // inline
33 extern void GLogWarning ( ostream & os, const string & text ); // inline
34 extern void GLogError ( ostream & os, const string & text,
35  bool abort = true ); // inline
36 
37 // Special messages for debugging (if GDEBUG preprocessor variable is defined)
38 extern void GDebugLine ( const string & text, u_int verb = 0 ); // inline
39 extern void GDebug ( const string & text, u_int verb = 0 ); // inline
40 
41 //======================================================================
42 
43 /*! \class GLogMessage
44  *
45  * This class provides a set of static functions to send messages to
46  * a terminal output and/or to a log file.
47  *
48  * The different types of text messages are the following:
49  * - \b Info : a message with information marker (prefix)
50  * - \b Warning : a message with warning marker (prefix) and highlightiong.
51  * - \b Error : a message with error marker (prefix) and highlightiong, than
52  * may also stop the program.
53  * - \b Message : a message with no marker, but with a user-defined verbose
54  * level condition
55  *
56  */
58 {
59  //------------------------------------------------------------
60  /*! \object_doc */
62  //------------------------------------------------------------
63 
64  protected:
65  static u_int verbose_level; ///< Current verbose level
66 
67  // messages and log files
68  static bool log_file; ///< Indicates if there is a log file
69  static bool log_term; ///< Indicates if there is a log output on terminal
70  static string log_file_name; ///< Log file name
71  static ofstream log_file_stream; ///< Log file stream
72 
73  //------------------------------------------------------------
74  // Constructor / Destructor / Affectation
75  protected:
76  GLogMessage ( );
77 
78  public:
79  virtual ~GLogMessage ( );
80 
81  //----------------------------------------------------------
82  static u_int GetVerboseLevel ( ); // inline
83  static void SetVerboseLevel ( u_int v ); // inline
84 
85  // terminal and log file messages
86  static void SetLogFile ( const string & fname, bool term = true );
87  static void CloseLogFile ( );
88 
89  static void SendLogMessage ( const string & text, u_int verb = 1 ); // inline
90  static void SendLogMessage ( const string & text, u_int verb, u_int ref_level ); // inline
91  static void SendLogInfo ( const string & text ); // inline
92  static void SendLogWarning ( const string & text ); // inline
93  static void SengLogError ( const string & text,
94  bool abort = true ); // inline
95 
96  static void SendLogMessage ( ostream & os, const string & text, u_int verb = 1 );
97  static void SendLogMessage ( ostream & os, const string & text, u_int verb, u_int ref_level );
98  static void SendLogInfo ( ostream & os, const string & text );
99  static void SendLogWarning ( ostream & os, const string & text );
100  static void SengLogError ( ostream & os, const string & text,
101  bool abort = true );
102 };
103 
104 //----------------------------------------------------------------------
105 // Inline functions
106 #include "icc/GLogMessage.icc"
107 
108 //======================================================================
109 #endif
void GSetVerboseLevel(u_int v)
Definition: GLogMessage.icc:86
void GLogError(const string &text, bool abort=true)
Definition: GLogMessage.icc:146
void GLogWarning(const string &text)
Definition: GLogMessage.icc:137
static void SengLogError(const string &text, bool abort=true)
Definition: GLogMessage.icc:72
static void SetVerboseLevel(u_int v)
Definition: GLogMessage.icc:29
void GLogMessage(const string &text, u_int verb=0)
Definition: GLogMessage.icc:110
static string log_file_name
Log file name.
Definition: GLogMessage.hh:70
void GDebugLine(const string &text, u_int verb=0)
Definition: GLogMessage.icc:234
u_int GGetVerboseLevel()
Definition: GLogMessage.icc:80
void GSetLogFile(const string &fname, bool term=true)
Definition: GLogMessage.icc:96
static bool log_file
Indicates if there is a log file.
Definition: GLogMessage.hh:68
static void CloseLogFile()
Definition: GLogMessage.cpp:31
static void SendLogWarning(const string &text)
Definition: GLogMessage.icc:64
void GCloseLogFile()
Definition: GLogMessage.icc:101
#define GObject(T)
Definition: GClassDefine.hh:65
static bool log_term
Indicates if there is a log output on terminal.
Definition: GLogMessage.hh:69
static void SendLogMessage(const string &text, u_int verb=1)
Definition: GLogMessage.icc:39
Definition: GLogMessage.hh:57
static ofstream log_file_stream
Log file stream.
Definition: GLogMessage.hh:71
void GLogInfo(const string &text)
Definition: GLogMessage.icc:130
static void SetLogFile(const string &fname, bool term=true)
Definition: GLogMessage.cpp:47
static u_int verbose_level
Current verbose level.
Definition: GLogMessage.hh:65
static u_int GetVerboseLevel()
Definition: GLogMessage.icc:22
unsigned int u_int
Definition: GTypes.hh:38
static void SendLogInfo(const string &text)
Definition: GLogMessage.icc:58