00001
00007 #include <string>
00008 #include <fstream>
00009 #include <time.h>
00010 using namespace std;
00011
00012 #include "Fehler.h"
00013
00021 Fehler::Fehler(){
00022 fehlerNummer_ = 0;
00023 fehlerMeldung_ = "Ein allgemeiner Fehler ist aufgetreten.";
00024 log();
00025 }
00026
00036 Fehler::Fehler( string fehlerMeldung, int fehlerNummer ){
00037 fehlerNummer_ = fehlerNummer;
00038 fehlerMeldung_ = fehlerMeldung;
00039 log();
00040 }
00041
00051 Fehler &Fehler::operator= ( Fehler ©Fehler ){
00052 fehlerMeldung_ = copyFehler.gibMeldung();
00053 fehlerNummer_ = copyFehler.gibFehlerNummer();
00054 return *this;
00055 }
00056
00065 string Fehler::gibMeldung(){
00066 return fehlerMeldung_;
00067 }
00068
00077 int Fehler::gibFehlerNummer(){
00078 return fehlerNummer_;
00079 }
00080
00089 void Fehler::ergaenzeMeldung( string ergaenzung ){
00090 fehlerMeldung_ += "\n\n" + ergaenzung;
00091 }
00092
00099 void Fehler::log(){
00100 ofstream errorLog;
00101 errorLog.open( "error.log", ios::app );
00102 errorLog << *this;
00103 }
00104
00114 ostream &operator<< ( ostream &os, Fehler fehler ){
00115
00116 time_t updatingTime = time( NULL );
00117 tm *brokenUpdatingTime = localtime( &updatingTime );
00118
00119
00120 os << endl;
00121 os << "=======================FEHLER===================================================" << endl;
00122 os << brokenUpdatingTime->tm_year + 1900 << "-";
00123 os << brokenUpdatingTime->tm_mon + 1 << " -";
00124 os << brokenUpdatingTime->tm_mday << " ";
00125 os << brokenUpdatingTime->tm_hour << ":";
00126 os << brokenUpdatingTime->tm_min;
00127 os << endl;
00128 os << "--------------------------------------------------------------------------------" << endl;
00129 os << fehler.fehlerMeldung_ << endl;
00130
00131 return os;
00132 }