MsgLogger/src/MsgLogLevel.cpp

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------
00002 // File and Version Information:
00003 //      $Id: MsgLogLevel.cpp 2550 2011-10-24 21:37:19Z salnikov@SLAC.STANFORD.EDU $
00004 //
00005 // Description:
00006 //      Class MsgLogLevel
00007 //
00008 // Environment:
00009 //      Software developed for the BaBar Detector at the SLAC B-Factory.
00010 //
00011 // Author List:
00012 //      Andy Salnikov
00013 //
00014 // Copyright Information:
00015 //      Copyright (C) 2005 SLAC
00016 //
00017 //------------------------------------------------------------------------
00018 
00019 //-----------------------
00020 // This Class's Header --
00021 //-----------------------
00022 #include "MsgLogger/MsgLogLevel.h"
00023 
00024 //---------------
00025 // C++ Headers --
00026 //---------------
00027 #include <stdexcept>
00028 
00029 //-------------------------------
00030 // Collaborating Class Headers --
00031 //-------------------------------
00032 
00033 //-----------------------------------------------------------------------
00034 // Local Macros, Typedefs, Structures, Unions and Forward Declarations --
00035 //-----------------------------------------------------------------------
00036 
00037 namespace MsgLogger {
00038 
00039 //              ----------------------------------------
00040 //              -- Public Function Member Definitions --
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 // get full printable name of Level level
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 // get 3-letter printable name of Level code
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 // get one-char Level code
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 } // namespace MsgLogger

Generated on 19 Dec 2016 for PSDMSoftware by  doxygen 1.4.7