Skip to content

Latest commit

 

History

History
18 lines (16 loc) · 4.86 KB

Log4MQL.md

File metadata and controls

18 lines (16 loc) · 4.86 KB

title: Log4MQL

За основу взяты классы Logger и MessageFormatter из библиотеки SLF4J.

Подключение

Достаточно вставить:

#include <Log4MQL.mqh>
Но для переопределение уровня логирования нужна такая последовательность кода:
#define _LOG_PARAM
#include <Log4MQL.mqh>
input LOG_LEVEL loglevel = LOG_WARN; // Log Level
А для переопределения класса:
#define _LOG_CLASS CMyLog
#include <Log4MQL.mqh>

"Юзай макросы, Люк..."

Для обхода синтаксических ограничений MQL5 пришлось использовать макросы.

Перегрузка макросов по количеству параметров в MQL5 не работает.

#define DEF(a1) Print(a1)
#define DEF(a1,a2) Print(a1,a2) // WARN: macro redefinition

void OnStart() {    DEF("111"); // ERROR: 'DEF' - not actual parameters count for macro                //        'DEF' - undeclared identifier

   DEF("222", 333); }

Для обхода этого ограничения добавлено количество параметров к имени макроса:

lgDebug0("Только текст");
lgDebug2("Значения 1={}, 2={}", "Привет", 100);

Запись лога в файл

#include <Log4MQL_toFile.mqh>

Переопределенный класс, который записывает все сообщения в файл.

Но больше - это тест наследственности классов без изменения принципов использования. /// "Нелогичность" реализации некоторых частей класса связана с ограничениями MQL в .

Примеры

// тут пример и вывод с обычный

// тут с файлом

Мониторинг логов

Саму библиотеку можно использовать и просто так, но именно расширяемость парсера LogMX подтолкнула меня на создание библиотеки.

LogMX создан на Java, поэтому запускается на многих ОСях.

Так же LogMX поставляется в бесплатной и платной версии. В платной версии можно всю папку логов для мониторинга задать.

Архив LogMX_Log4MQL.zip (исходник тоже в архиве) нужно распаковать в // тут путь в Линуксе и Вине узнать

Но вот скирины с настройками LogMX для мониторинга логов: