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_AGGREGATOR_RAW_H_
00028 #define CEYLAN_LOG_AGGREGATOR_RAW_H_
00029
00030
00031 #include "CeylanLogAggregator.h"
00032 #include "CeylanDisplayable.h"
00033
00034 #include <string>
00035
00036
00037
00038 namespace Ceylan
00039 {
00040
00041
00042 namespace System
00043 {
00044
00045
00046 class File ;
00047 }
00048
00049
00050 namespace Log
00051 {
00052
00053
00054
00055 class LogMessage ;
00056
00057
00074 class CEYLAN_DLL LogAggregatorRaw : public LogAggregator
00075 {
00076
00077
00078 public:
00079
00080
00107 explicit LogAggregatorRaw(
00108 const std::string & logFilename,
00109 bool immediateWrite = true,
00110 bool useGlobalLevelOfDetail = true,
00111 bool beSmart = true ) ;
00112
00113
00114
00123 virtual ~LogAggregatorRaw() throw() ;
00124
00125
00126
00137 virtual void aggregate() ;
00138
00139
00140
00155 virtual void store( LogMessage & message ) ;
00156
00157
00158
00171 virtual const std::string toString(
00172 Ceylan::VerbosityLevels level = Ceylan::high ) const ;
00173
00174
00175
00176
00177 protected:
00178
00179
00180
00190 virtual void write( const LogChannel & channel ) const ;
00191
00192
00193
00206 virtual void write( const LogMessage & message ) const ;
00207
00208
00209
00215 std::string _logFilename ;
00216
00217
00218
00220 System::File * _outputFile ;
00221
00222
00223
00229 bool _immediateWrite ;
00230
00231
00232
00233
00234 private:
00235
00236
00245 LogAggregatorRaw( const LogAggregatorRaw & source ) ;
00246
00247
00248
00257 LogAggregatorRaw & operator = (
00258 const LogAggregatorRaw & source ) ;
00259
00260
00261 } ;
00262
00263
00264 }
00265
00266
00267 }
00268
00269
00270 #endif // CEYLAN_LOG_AGGREGATOR_RAW_H_
00271