00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "MsgLogger/MsgLogLevel.h"
00023
00024
00025
00026
00027 #include <stdexcept>
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 namespace MsgLogger {
00038
00039
00040
00041
00042
00043 MsgLogLevel::MsgLogLevel( int code )
00044 {
00045 if ( code < int(debug) ) {
00046 code = int(debug) ;
00047 } else if ( code > int(error) ) {
00048 code = int(error) ;
00049 }
00050 _level = Level(code) ;
00051 }
00052
00053 MsgLogLevel::MsgLogLevel( const std::string& level )
00054 {
00055 if ( level == "trace" ) {
00056 _level = trace ;
00057 } else if ( level == "debug" ) {
00058 _level = debug ;
00059 } else if ( level == "warning" ) {
00060 _level = warning ;
00061 } else if ( level == "info" ) {
00062 _level = info ;
00063 } else if ( level == "error" ) {
00064 _level = error ;
00065 } else if ( level == "fatal" ) {
00066 _level = fatal ;
00067 } else if ( level == "nolog" ) {
00068 _level = nolog ;
00069 } else {
00070 throw std::out_of_range ( "unexpected logging level name" ) ;
00071 }
00072 }
00073
00074
00075 const char*
00076 MsgLogLevel::levelName () const
00077 {
00078 switch ( _level ) {
00079 case debug:
00080 return "debug" ;
00081 case trace:
00082 return "trace" ;
00083 case info:
00084 return "info" ;
00085 case warning:
00086 return "warning" ;
00087 case error:
00088 return "error" ;
00089 case fatal:
00090 return "fatal" ;
00091 case nolog:
00092 default:
00093 return "no-log" ;
00094 }
00095 }
00096
00097
00098 const char*
00099 MsgLogLevel::level3 () const
00100 {
00101 switch ( _level ) {
00102 case debug:
00103 return "DBG" ;
00104 case trace:
00105 return "TRC" ;
00106 case info:
00107 return "INF" ;
00108 case warning:
00109 return "WRN" ;
00110 case error:
00111 return "ERR" ;
00112 case fatal:
00113 return "FTL" ;
00114 case nolog:
00115 default:
00116 return "???" ;
00117 }
00118 }
00119
00120
00121 char
00122 MsgLogLevel::levelLetter () const
00123 {
00124 switch ( _level ) {
00125 case debug:
00126 return 'D' ;
00127 case trace:
00128 return 'T' ;
00129 case info:
00130 return 'I' ;
00131 case warning:
00132 return 'W' ;
00133 case error:
00134 return 'E' ;
00135 case fatal:
00136 return 'F' ;
00137 case nolog:
00138 default:
00139 return '?' ;
00140 }
00141 }
00142
00143 }