Обсуждение статьи "Поиск ошибок и ведение лога"

 

Опубликована статья Поиск ошибок и ведение лога:

В редакторе MetaEditor 5 есть возможность отладки, но часто при написании программ на MQL5 требуется просмотр не отдельных значений, а массовых выводов сообщений во время онлайн-работы или при тестировании. При больших объемах содержимого лог-файла встает вопрос механизации для удобного и быстрого поиска интересующего сообщения. Мы рассмотрим способы поиска ошибок в программах на MQL5 и способы ведения лога. А также упростим запись логов в файлы и познакомимся с простенькой программой LogMon для комфортного просмотра логов.

Автор: Дмитрий Александрович

 

Спасибо за статью. Давно сам хотел создать что-то подобное, да все руки не доходили. А тут... Уже пользуюсь.

 
papaklass:

Мне тоже понравилась статья, спасибо. А то МТ печает с пропусками и это очень не удобно.

Пропуски только в закладке "Эксперты". Все сообщения находятся в файле лога.
 

А я все больше такими или подобными штучками баловался:

void PrintDebugInfo(string InputString)
{
  CopyTime(Symbol(),Period(),0,1,Time);
  ArraySetAsSeries(Time,true);
  FileWrite(FileHandle,Time[0],"   ",InputString);
}

Спасибо за код, будем юзать... 

 
Lizar:

Спасибо за статью. Давно сам хотел создать что-то подобное, да все руки не доходили. А тут... Уже пользуюсь.

Пользуйтесь на здоровье! :)
По мере использования, буду дорабатывать класс и прогу, т.к. писал сначала для себя, а потом уже про статью мысль пришла))
 

Очень полезный материал!

 

Прилагаемый .exe все еще на русском языке. Не могли бы вы перезалить его?

P.S. Это действительно полезно! Один из первых классов, который должен быть объявлен в любом ООП-проекте - это класс для обработки ошибок!

 
Спасибо за ваш комментарий. Теперь вы можете найти правильную английскую версию этой утилиты в прикрепленных файлах.
 

Если вы забудете использовать флэш, возможна потеря данных.

Лучшим решением будет следующее:


private:
   void              flush(void);              // Промывка кэша в файл
//+------------------------------------------------------------------+
//| Деинициализация|
//+------------------------------------------------------------------+
void CLogger::deinit(void)
  {
   flush();  // Промыть данные
   FileClose(handleFile); // Закрыть файл
  }

Чтобы сохранение данных происходило автоматически.

ps..: Извините, если обидел орфографией, гугл-переводчик мне помог...

 

Дмитрий Александрович, спасибо за Вашу работу, давно искал что-то подобное и вот наконец нашёл ))

предложение по совершенствованию logmon.exe, сделать настройку что бы можно было прописать пути где искать файлы с логами, т.к. иметь 2 копии в разных папках (для тестера и штатной работы) как-то по аматорски ))

хотя мож как руки дойдут и сам допилю )) 

если ещё есть что-нибудь полезное - выкладывайте, Ваш стиль программирования и подачи материала - ооч. мозгофрэндный ))

 

У меня выдает ошибку на отладке по историческим данным: "MQL5 debugger failed to start debugging 'testlogger.ex5' on history". На реальных данных проходит нормально.

Подскажите пожалуйста, что нужно подправить, чтобы на истории заработал?