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_MESSAGE_H_
00028 #define CEYLAN_LOG_MESSAGE_H_
00029
00030
00031
00032 #include "CeylanLog.h"
00033 #include "CeylanTextDisplayable.h"
00034
00035 #include <string>
00036
00037
00038 namespace Ceylan
00039 {
00040
00041
00042
00043 class Timestamp ;
00044
00045
00046 namespace Log
00047 {
00048
00049
00058 class CEYLAN_DLL LogMessage : public TextDisplayable
00059 {
00060
00061
00062 public:
00063
00064
00080 LogMessage( const std::string & message,
00081 const std::string & channelName,
00082 LevelOfDetail levelOfDetail,
00083 const Timestamp & timestamp ) ;
00084
00085
00086
00094 LogMessage( const std::string & message,
00095 const std::string & channelName,
00096 LevelOfDetail levelOfDetail
00097 = MaximumLevelOfDetailForMessage ) ;
00098
00099
00101 virtual ~LogMessage() throw() ;
00102
00103
00104
00106 virtual const std::string getContent() const ;
00107
00108
00110 virtual const std::string getChannelName() const ;
00111
00112
00113
00119 virtual void setChannelName(
00120 const std::string & newChannelName ) ;
00121
00122
00123
00125 virtual LevelOfDetail getLevelOfDetail() const ;
00126
00127
00128
00136 virtual const Timestamp & getTimestamp() const ;
00137
00138
00139
00145 virtual const std::string getPreformattedText() const ;
00146
00147
00148
00157 virtual const std::string toString(
00158 Ceylan::VerbosityLevels level = Ceylan::high ) const ;
00159
00160
00161
00162 protected:
00163
00164
00166 std::string _message ;
00167
00168
00170 std::string _channelName ;
00171
00172
00174 LevelOfDetail _levelOfDetail ;
00175
00176
00178 const Timestamp * _timestamp ;
00179
00180
00181
00182 private:
00183
00184
00193 LogMessage( const LogMessage & source ) ;
00194
00195
00204 LogMessage & operator = ( const LogMessage & source ) ;
00205
00206 } ;
00207
00208 }
00209
00210 }
00211
00212
00213 #endif // CEYLAN_LOG_MESSAGE_H_
00214