source: ether_eccad/trunk/ECCAD_INSERT/src/Logger.cpp @ 81

Last change on this file since 81 was 81, checked in by cbipsl, 14 years ago

ok

  • Property svn:executable set to *
File size: 4.6 KB
Line 
1#include "Logger.h"
2
3#include <syslog.h>
4
5#include <iostream>
6using namespace std;
7
8
9Logger::Logger()
10{
11        nbreFilesErrors = 0;
12        nbreFilesUpdate = 0;
13        nbreFilesInsert = 0;
14}
15
16Logger::~Logger()
17{
18       
19}
20
21void Logger::printAllMessages(time_t debut){
22       
23                cout<<endl<<endl<< "============Rapport d'insertion=============="<<endl<<endl;
24               
25               
26               
27                list<string>::iterator strIter;
28                for(strIter=Xml_GeneralMessages.begin(); strIter != Xml_GeneralMessages.end(); ++strIter){
29                        cout << *strIter << endl;
30                }
31               
32                if(XmlParse_Error.size() > 0) cerr << "XML Parsing Failed :\n";
33                for(strIter=XmlParse_Error.begin(); strIter != XmlParse_Error.end(); ++strIter){
34                        cerr << *strIter << endl;
35                }
36               
37                /*if(XmlSchemaValidation_Error.size() > 0) cerr << "XML Schema Validation Failed :\n";
38                for(strIter=XmlSchemaValidation_Error.begin(); strIter != XmlSchemaValidation_Error.end(); ++strIter){
39                        cerr << *strIter << endl;
40                }*/
41               
42                if(XmlConsistencyValidation_Error.size() > 0) cerr << "XML File Consistency Verification Failed :\n";
43                for(strIter=XmlConsistencyValidation_Error.begin(); strIter != XmlConsistencyValidation_Error.end(); ++strIter){
44                        cerr << *strIter << endl;
45                }
46               
47                //MappingBaseMessages
48                /*for(strIter=baseMappingMessagesErrors.begin(); strIter != baseMappingMessagesErrors.end(); ++strIter){
49                        cerr << *strIter << endl;
50                }
51               
52                if ( baseMappingMessagesErrors.empty() &&  XmlConsistencyValidation_Error.empty() && XmlSchemaValidation_Error.empty()
53                && XmlParse_Error.empty()) cout << "Synchronisation XML --> Base OK."<<endl;
54                //MappingBaseMessages
55               
56                for(strIter=baseMappingMessages.begin(); strIter != baseMappingMessages.end(); ++strIter){
57                        cout << *strIter << endl;
58                }
59               
60                for(strIter=baseMappingMessagesErrors.begin(); strIter != baseMappingMessagesErrors.end(); ++strIter){
61                       
62                        cerr << "erreur base"<<endl;
63                        cerr << *strIter << endl;
64                }*/
65               
66               
67                for(strIter=readersMessagesErrors.begin(); strIter != readersMessagesErrors.end(); ++strIter){
68                        cout << *strIter << endl;
69                }
70               
71                cout << nbreFilesInsert <<" fichier(s) insere(s)" <<endl;
72                cout << nbreFilesUpdate <<" fichier(s) mis a jour" <<endl;
73                cout << nbreFilesErrors <<" fichier(s) errone(s)" <<endl;
74                //ParcoursArborescenceMessages
75                if (debut != -1) {
76                        const time_t fin = time(NULL);
77                        cout<<"-----> Temps écoulé: "<< difftime(fin,debut)<<" secondes" <<endl;
78//                      long clockpersec = CLOCKS_PER_SEC;
79//                      double difference = (double)(fin - debut)/(double)clockpersec;
80//                      printf("----> Temps écoulé: %.2f secondes\n",difference);
81                }
82                cout<< "============***************=============="<<endl;
83}
84
85void Logger::logAllMessages(){
86       
87        list<string>::iterator strIter; 
88       
89        openlog("ECCAD INSERT", LOG_CONS|LOG_PID, LOG_LOCAL7);
90       
91        for(strIter=baseMappingMessagesErrors.begin(); strIter != baseMappingMessagesErrors.end(); ++strIter){
92                        syslog(LOG_ERR,(*strIter).c_str());
93                }
94        closelog();
95       
96}
97       
98void Logger::addGeneralXmlMessage(string message){
99        Xml_GeneralMessages.push_back(message);
100}
101
102void Logger::addXmlParseError(string message){
103        XmlParse_Error.push_back(message);
104}
105
106void Logger::addXmlSchemaValidationError(string message){
107        XmlSchemaValidation_Error.push_back(message);
108}
109
110void Logger::addXmlConsistencyValidationError(string message){
111        XmlConsistencyValidation_Error.push_back(message);
112}
113
114void Logger::addXmlObjectMappingMessage(string message){
115        Xml_ObjectMappingMessages.push_back(message);
116}
117       
118void Logger::addXmlObjectMappingError(string message){
119        XmlObjectMapping_Error.push_back(message);
120}
121
122
123/// Traitement des message du mapping vers la base de donnï¿œes//////////////
124void Logger::addBaseMappingMessages(string message)
125{
126         baseMappingMessages.push_back(message);
127}
128
129void Logger::addBaseMappingMessagesErrors(string message)
130{
131         baseMappingMessagesErrors.push_back(message);
132}
133
134void Logger::traitementBaseMessages(string message, PGresult* res)
135{
136        if ( PQresultStatus(res) != PGRES_COMMAND_OK) 
137                        {
138                                string erreur = "Erreur " +message+ " : " ;
139                                erreur += PQresultErrorMessage(res);
140                                erreur += " : ";
141                                erreur += PQresStatus(PQresultStatus(res));
142                                addBaseMappingMessagesErrors(erreur);
143                        }
144                        else
145                        {
146                                string succes = PQcmdTuples(res)+ message;
147                                succes += " : ";
148                                succes += PQresStatus(PQresultStatus(res));
149                                addBaseMappingMessages(succes);
150                        }
151}
152
153
154void Logger::addReadersMessagesErrors(string message)
155{
156        readersMessagesErrors.push_back(message);
157}
158
159bool Logger::errorsExist()
160{
161        if (XmlParse_Error.empty() && XmlSchemaValidation_Error.empty()  && XmlConsistencyValidation_Error.empty() && XmlObjectMapping_Error.empty() && baseMappingMessagesErrors.empty() && readersMessagesErrors.empty())
162        return true;
163        else return false;
164}
165
166
Note: See TracBrowser for help on using the repository browser.