00001 #ifndef EventFilter_ELlog4cplus_h
00002 #define EventFilter_ELlog4cplus_h 2
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include <sstream>
00024
00025
00026 #include "FWCore/MessageLogger/interface/ELstring.h"
00027 #include "FWCore/MessageLogger/interface/ELextendedID.h"
00028 #include "FWCore/MessageService/interface/ELdestination.h"
00029
00030 #include "EventFilter/Utilities/interface/RunBase.h"
00031
00032 namespace xdaq {
00033 class Application;
00034 }
00035
00036 namespace edm {
00037
00038
00039
00040
00041
00042
00043 class ErrorObj;
00044 class ELdestControl;
00045
00046
00047
00048
00049
00050
00051 class ELlog4cplus : public service::ELdestination, public evf::RunBase {
00052
00053 friend class service::ELdestControl;
00054
00055 public:
00056
00057
00058
00059 ELlog4cplus();
00060 ELlog4cplus( const ELlog4cplus & orig );
00061 virtual ~ELlog4cplus();
00062
00063
00064
00065 public:
00066 virtual
00067 ELlog4cplus *
00068 clone() const;
00069
00070
00071
00072
00073
00074 virtual bool log( const ErrorObj & msg );
00075
00076
00077
00078
00079 protected:
00080
00081
00082
00083
00084
00085 protected:
00086
00087
00088
00089
00090 protected:
00091 virtual void emit( const ELstring & s, bool nl=false );
00092
00093 virtual void suppressTime(); virtual void includeTime();
00094 virtual void suppressModule(); virtual void includeModule();
00095 virtual void suppressSubroutine(); virtual void includeSubroutine();
00096 virtual void suppressText(); virtual void includeText();
00097 virtual void suppressContext(); virtual void includeContext();
00098 virtual void suppressSerial(); virtual void includeSerial();
00099 virtual void useFullContext(); virtual void useContext();
00100 virtual void separateTime(); virtual void attachTime();
00101 virtual void separateEpilogue(); virtual void attachEpilogue();
00102
00103 virtual void summarization ( const ELstring & fullTitle
00104 , const ELstring & sumLines );
00105
00106
00107
00108
00109 public:
00110 void xxxxSet( int i );
00111 void xxxxShout();
00112 void setAppl(xdaq::Application *a);
00113
00114 protected:
00115
00116
00117 std::ostringstream os_;
00118 std::ostringstream * os;
00119 bool osIsOwned;
00120 int charsOnLine;
00121 ELextendedID xid;
00122
00123 bool wantTimestamp
00124 , wantModule
00125 , wantSubroutine
00126 , wantText
00127 , wantSomeContext
00128 , wantSerial
00129 , wantFullContext
00130 , wantTimeSeparate
00131 , wantEpilogueSeparate
00132 ;
00133
00134
00135 int xxxxInt;
00136
00137
00138
00139 ELlog4cplus & operator=( const ELlog4cplus & orig );
00140
00141 private:
00142
00143 xdaq::Application *appl_;
00144
00145 };
00146
00147
00148
00149
00150
00151 }
00152
00153
00154 #endif // ELlog4cplus_h