00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef CEYLAN_LOG_HOLDER_H_
00028 #define CEYLAN_LOG_HOLDER_H_
00029
00030
00031 #include "CeylanTextDisplayable.h"
00032 #include "CeylanLog.h"
00033 #include "CeylanTypes.h"
00034
00035 #include <string>
00036
00037
00038
00039 namespace Ceylan
00040 {
00041
00042 namespace Log
00043 {
00044
00045
00068 enum KnownPlugs
00069 {
00070
00071 consolePlug,
00072 classicalPlug,
00073 HTMLPlug,
00074 nullPlug
00075
00076 } ;
00077
00078
00079
00130 class CEYLAN_DLL LogHolder: public TextDisplayable
00131 {
00132
00133
00134 public:
00135
00136
00166 LogHolder( Ceylan::Uint16 argCount,
00167 const char * const arguments[],
00168 bool immediateWrite = true ) ;
00169
00170
00172 virtual ~LogHolder() throw() ;
00173
00174
00175
00184 virtual const std::string toString(
00185 Ceylan::VerbosityLevels level = Ceylan::high ) const ;
00186
00187
00188
00198 static bool IsAKnownPlugOption( const std::string & option ) ;
00199
00200
00201
00207 static const std::string ConsolePlugOption ;
00208
00209
00215 static const std::string ClassicalPlugOption ;
00216
00217
00222 static const std::string HTMLPlugOption ;
00223
00224
00229 static const std::string NullPlugOption ;
00230
00231
00237 static KnownPlugs DefaultPlug ;
00238
00239
00240
00241 protected:
00242
00244 KnownPlugs _chosenPlug ;
00245
00246
00247
00248 private:
00249
00250
00259 LogHolder( const LogHolder & source ) ;
00260
00261
00270 LogHolder & operator = ( const LogHolder & source ) ;
00271
00272
00273 } ;
00274
00275 }
00276
00277 }
00278
00279
00280 #endif // CEYLAN_LOG_HOLDER_H_
00281