Титульная страница   Пространства имен   Иерархия классов   Алфавитный указатель   Классы   Файлы   Члены пространства имен   Члены классов   Члены файла  

Класс Logger

Данный класс предназначен для записи в лог информации по всем публикуемым сообщениям. Подробнее...

Граф наследования:Logger:

Subscriber< FoundMsg > Subscriber< ErrorMsg > Subscriber< InfoMsg > Полный список членов класса

Открытые члены

 Logger (const string &fname)
 Открывает переданный файл для дописывания в него информации.

 ~Logger ()
 Дописывает в лог статистическую информацию и закрывает файл.

virtual void subscribedMsg (const Publisher< FoundMsg > &pub)
 Данная функция может быть переопределена пользователем для получения сообщений о подписке.

virtual void unsubscribedMsg (const Publisher< FoundMsg > &pub)
 Данная функция может быть переопределена пользователем для получения сообщений о прекращении подписки.

virtual void subscribedMsg (const Publisher< ErrorMsg > &pub)
 Данная функция может быть переопределена пользователем для получения сообщений о подписке.

virtual void unsubscribedMsg (const Publisher< ErrorMsg > &pub)
 Данная функция может быть переопределена пользователем для получения сообщений о прекращении подписки.

virtual void subscribedMsg (const Publisher< InfoMsg > &pub)
 Данная функция может быть переопределена пользователем для получения сообщений о подписке.

virtual void unsubscribedMsg (const Publisher< InfoMsg > &pub)
 Данная функция может быть переопределена пользователем для получения сообщений о прекращении подписки.


Открытые атрибуты

int filesOpened
 количество файлов, открытых во время поиска

int filesClosed
 количество файлов, закрытых во время поиска

int linesFound
 количество найденных строк

int errorsEncountered
 количество встреченных ошибок


Закрытые члены

virtual bool regularMsg (const Publisher< FoundMsg > &pub, const FoundMsg &msg)
 Выводит найденные строки.

virtual bool regularMsg (const Publisher< ErrorMsg > &pub, const ErrorMsg &msg)
 Выводит сообщения об ошибках.

virtual bool regularMsg (const Publisher< InfoMsg > &pub, const InfoMsg &msg)
 Выводит информационные сообщения.


Закрытые данные

FILE * log
 лог для записи


Подробное описание

Данный класс предназначен для записи в лог информации по всем публикуемым сообщениям.

См. определение в файле ftext.cpp строка 55


Конструктор(ы)

Logger::Logger const string &  fname  ) 
 

Открывает переданный файл для дописывания в него информации.

См. определение в файле ftext.cpp строка 99

Перекрестные ссылки _FLINE_, errorsEncountered, filesClosed, filesOpened, linesFound, log и newCException().

00100 {
00101  log=fopen(fname.c_str(), "a");
00102  if (!log) {
00103     throw newCException(_FLINE_, StringBuf("Can't open \"")+fname+
00104       "\" file for logging");
00105  }
00106 
00107  filesOpened=filesClosed=linesFound=errorsEncountered=0;
00108 }

Logger::~Logger  ) 
 

Дописывает в лог статистическую информацию и закрывает файл.

См. определение в файле ftext.cpp строка 110

Перекрестные ссылки errorsEncountered, filesClosed, filesOpened, linesFound и log.

00111 {
00112  fputc('\n', log);
00113 #define PR(var) fprintf(log, #var ": %d\n", var)
00114  PR(filesOpened);
00115  PR(filesClosed);
00116  PR(linesFound);
00117  PR(errorsEncountered);
00118 #undef PR
00119  fputc('\n', log);
00120 
00121  fclose(log);
00122 }


Методы

bool Logger::regularMsg const Publisher< InfoMsg > &  pub,
const InfoMsg msg
[private, virtual]
 

Выводит информационные сообщения.

Переопределяет метод предка Subscriber< InfoMsg >.

См. определение в файле ftext.cpp строка 143

Перекрестные ссылки InfoMsg::fileName, filesClosed, filesOpened, MsgBase::ft, log и InfoMsg::type.

00144 {
00145  if (msg.type==InfoMsg::opened) filesOpened++;
00146  else filesClosed++;
00147 
00148  fprintf(log, "InfoMsg : Publisher(%p) FindText(%p) type(%s) fileName(%s)\n",
00149    &pub, &msg.ft, (msg.type==InfoMsg::opened) ? "opened" : "closed",
00150    msg.fileName.c_str());
00151 
00152  return 1;
00153 }

bool Logger::regularMsg const Publisher< ErrorMsg > &  pub,
const ErrorMsg msg
[private, virtual]
 

Выводит сообщения об ошибках.

Переопределяет метод предка Subscriber< ErrorMsg >.

См. определение в файле ftext.cpp строка 134

Перекрестные ссылки ErrorMsg::errMsg, errorsEncountered, MsgBase::ft и log.

00135 {
00136  errorsEncountered++;
00137  fprintf(log, "ErrorMsg: Publisher(%p) FindText(%p) errMsg(%s)\n", &pub,
00138    &msg.ft, msg.errMsg.c_str());
00139 
00140  return 1;
00141 }

bool Logger::regularMsg const Publisher< FoundMsg > &  pub,
const FoundMsg msg
[private, virtual]
 

Выводит найденные строки.

Переопределяет метод предка Subscriber< FoundMsg >.

См. определение в файле ftext.cpp строка 124

Перекрестные ссылки FoundMsg::fileName, MsgBase::ft, FoundMsg::lineNum, linesFound, FoundMsg::lineText и log.

00125 {
00126  linesFound++;
00127  fprintf(log, "FoundMsg: Publisher(%p) FindText(%p) fileName(%s) lineNum(%d) "
00128    "lineText(%s)\n", &pub, &msg.ft, msg.fileName.c_str(), msg.lineNum,
00129    msg.lineText.c_str());
00130 
00131  return 1;
00132 }

virtual void Subscriber< InfoMsg >::subscribedMsg const Publisher< InfoMsg > &  pub  )  [virtual, inherited]
 

Данная функция может быть переопределена пользователем для получения сообщений о подписке.

Объект-издатель передается по константной ссылке pub для предотвращения его изменения в процессе передачи сообщения подписчикам, т.к. это может привести к ошибкам. Все исключения, возбуженные subscribedMsg(), будут проигнорированы.

virtual void Subscriber< ErrorMsg >::subscribedMsg const Publisher< ErrorMsg > &  pub  )  [virtual, inherited]
 

Данная функция может быть переопределена пользователем для получения сообщений о подписке.

Объект-издатель передается по константной ссылке pub для предотвращения его изменения в процессе передачи сообщения подписчикам, т.к. это может привести к ошибкам. Все исключения, возбуженные subscribedMsg(), будут проигнорированы.

virtual void Subscriber< FoundMsg >::subscribedMsg const Publisher< FoundMsg > &  pub  )  [virtual, inherited]
 

Данная функция может быть переопределена пользователем для получения сообщений о подписке.

Объект-издатель передается по константной ссылке pub для предотвращения его изменения в процессе передачи сообщения подписчикам, т.к. это может привести к ошибкам. Все исключения, возбуженные subscribedMsg(), будут проигнорированы.

virtual void Subscriber< InfoMsg >::unsubscribedMsg const Publisher< InfoMsg > &  pub  )  [virtual, inherited]
 

Данная функция может быть переопределена пользователем для получения сообщений о прекращении подписки.

Объект-издатель передается по константной ссылке pub для предотвращения его изменения в процессе передачи сообщения подписчикам, т.к. это может привести к ошибкам. Все исключения, возбуженные unsubscribedMsg(), будут проигнорированы.

virtual void Subscriber< ErrorMsg >::unsubscribedMsg const Publisher< ErrorMsg > &  pub  )  [virtual, inherited]
 

Данная функция может быть переопределена пользователем для получения сообщений о прекращении подписки.

Объект-издатель передается по константной ссылке pub для предотвращения его изменения в процессе передачи сообщения подписчикам, т.к. это может привести к ошибкам. Все исключения, возбуженные unsubscribedMsg(), будут проигнорированы.

virtual void Subscriber< FoundMsg >::unsubscribedMsg const Publisher< FoundMsg > &  pub  )  [virtual, inherited]
 

Данная функция может быть переопределена пользователем для получения сообщений о прекращении подписки.

Объект-издатель передается по константной ссылке pub для предотвращения его изменения в процессе передачи сообщения подписчикам, т.к. это может привести к ошибкам. Все исключения, возбуженные unsubscribedMsg(), будут проигнорированы.


Данные класса

int Logger::errorsEncountered
 

количество встреченных ошибок

См. определение в файле ftext.cpp строка 86

Используется в Logger(), regularMsg() и ~Logger().

int Logger::filesClosed
 

количество файлов, закрытых во время поиска

См. определение в файле ftext.cpp строка 82

Используется в Logger(), regularMsg() и ~Logger().

int Logger::filesOpened
 

количество файлов, открытых во время поиска

См. определение в файле ftext.cpp строка 80

Используется в Logger(), regularMsg() и ~Logger().

int Logger::linesFound
 

количество найденных строк

См. определение в файле ftext.cpp строка 84

Используется в Logger(), regularMsg() и ~Logger().

FILE* Logger::log [private]
 

лог для записи

См. определение в файле ftext.cpp строка 58

Используется в Logger(), regularMsg() и ~Logger().


Объявления и описания членов класса находятся в файле:
Документация по ftext. Последние изменения: Sat Mar 20 17:58:15 2004. Создано системой doxygen1.3