Guarda come scaricare robot di trading gratuitamente
Ci trovi su Telegram!
Unisciti alla nostra fan page
Script interessante?
Pubblica il link!
lasciare che altri lo valutino
Ti è piaciuto lo script? Provalo nel Terminale MetaTrader 5
Librerie

Logify - Library for log management - libreria per MetaTrader 5

Visualizzazioni:
52
Valutazioni:
(4)
Pubblicato:
\MQL5\Experts\Logify\ \MQL5\Include\Logify\
Logify.mqh (25.24 KB) visualizza
\MQL5\Include\Logify\Utils\ \MQL5\Include\Logify\Suppression\ \MQL5\Include\Logify\Handlers\ \MQL5\Include\Logify\Formatter\ \MQL5\Include\Logify\Error\Languages\ \MQL5\Include\Logify\Error\
Error.mqh (0.55 KB) visualizza
Freelance MQL5 Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

Logify è una libreria di log per MQL progettata per semplificare il debug, il tracciamento e il monitoraggio di EA e indicatori. Fornisce log strutturati, personalizzabili e organizzati direttamente sul grafico o nel terminale, con supporto per livelli di log, formati flessibili e gestori multipli. Una soluzione leggera ed elegante, facile da integrare nei vostri progetti MQL.


Caratteristiche

  • Livelli di log multipli: DEBUG, INFO, ALERT, ERROR, FATAL
  • Visualizzazione dei log direttamente su grafico, terminale, file o persino database
  • Formato e layout dei log personalizzabili
  • Architettura modulare con più gestori
  • Leggero e facile da integrare e utilizzare


🚀 Installazione

  1. Copiare la cartella /Logify in:
    MQL5/Include/
  2. Includere Logify nel proprio EA, indicatore o script:
    #include <Logify/Logify.mqh>
  3. È possibile effettuare l'installazione utilizzando Git, basta accedere al repository e seguire i passaggi.



🔧 Esempio di avvio rapido

Esempio semplice con impostazioni predefinite:

//+------------------------------------------------------------------+
//| Importazione|
//+------------------------------------------------------------------+
#include <Logify/Logify.mqh>
CLogify Logify;
//+------------------------------------------------------------------+
//| Funzione di inizializzazione dell'esperto|
//+------------------------------------------------------------------+
int OnInit()
  {
   //--- Esempi di log
   Logify.Debug("Initialization started");
   Logify.Info("Account balance is OK");
   Logify.Alert("Take profit reached");
   Logify.Error("Failed to send order", "Order", "Reason: No money");
   Logify.Fatal("Critical error: Invalid input parameters");

  //---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+

Esempio avanzato, con impostazioni personalizzate del gestore. In questo esempio, salviamo i record di log su file e nel commento del grafico. Personalizzazione delle impostazioni per ciascuno di essi.

//+------------------------------------------------------------------+
//| Importazione|
//+------------------------------------------------------------------+
#include <Logify/Logify.mqh>
CLogify Logify;
//+------------------------------------------------------------------+
//| Funzione di inizializzazione dell'esperto|
//+------------------------------------------------------------------+
int OnInit()
  {
   //--- Configurare il gestore dei commenti
   MqlLogifyHandleCommentConfig config_comment;
   config_comment.size = 10;
   config_comment.frame_style = LOG_FRAME_STYLE_SINGLE;
   config_comment.direction = LOG_DIRECTION_UP;
   config_comment.title = "My Expert";

   //--- Creare e configurare il gestore dei commenti
   CLogifyHandlerComment *handler_comment = new CLogifyHandlerComment();
   handler_comment.SetConfig(config_comment);
   handler_comment.SetLevel(LOG_LEVEL_DEBUG);
   handler_comment.SetFormatter(new CLogifyFormatter("{date_time} [{levelname}]: {msg}","hh:mm:ss"));
   
   //--- Configurare il gestore di file
   MqlLogifyHandleFileConfig file_config;
   file_config.CreateDateRotationConfig("my_expert","logs",LOG_FILE_EXTENSION_LOG,10,100,CP_UTF8);
   
   //--- Creare e configurare il gestore di file
   CLogifyHandlerFile *handler_file = new CLogifyHandlerFile();
   handler_file.SetConfig(file_config);
   handler_file.SetLevel(LOG_LEVEL_DEBUG);
   handler_file.SetFormatter(new CLogifyFormatter("{date_time} [{levelname}]: {msg} ({filename} | {origin} | {function})","hh:mm:ss"));
   
   //--- Collegare il gestore
   Logify.AddHandler(handler_comment);
   Logify.AddHandler(handler_file);

   //--- Esempi di log
   Logify.Debug("Initialization started");
   Logify.Info("Account balance is OK");
   Logify.Alert("Take profit reached");
   Logify.Error("Failed to send order", "Order", "Reason: No money");
   Logify.Fatal("Critical error: Invalid input parameters");
   
   //---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+

Per comprendere ogni impostazione, si consiglia di leggere gli articoli seguenti, in cui si spiega ogni fase dello sviluppo della libreria:


✔️ Livelli dei registri

Livello
Descrizione
DEBUG
Informazioni dettagliate per il debug
INFO
Informazioni generali
ALLERTA
Avvertenze o eventi importanti
ERRORE
Errori che richiedono attenzione
FATALE
Errori critici, interrompere l'esecuzione


🖥️ Gestori inclusi

Ogni gestore definisce dove verranno visualizzati o memorizzati i log.

Gestore
Descrizione
Commento
Visualizza i log direttamente sul grafico (Commento)
Console
Mostra i log nel terminale MetaTrader
File
Salvare i log in file .txt o .log
Database Memorizza i log nel database SQLite locale

È possibile utilizzare uno o più gestori contemporaneamente, ad esempio grafico + file + console.


🛠️ Formato del log

Esempio di modello di formattazione:

"{date_time} [{levelname}]: {msg}"

Token disponibili:

  • {levelname}: Nome del livello (DEBUG, INFO, ERROR, ecc.)
  • {msg}: Messaggio principale
  • {args}: Argomenti o dettagli aggiuntivi
  • {timestamp}: Timestamp in secondi (ora Unix)
  • {date_time}: Data e ora formattate (hh:mm:ss, ecc.)
  • {level}: Codice numerico per il livello (0 = DEBUG, 1 = INFO...)
  • {origine}: Origine o contesto definito nella chiamata di log
  • {filename}: Nome del file sorgente (se disponibile)
  • {function}: Nome della funzione da cui è stata chiamata
  • {linea}: Numero di riga nel codice in cui si è verificato il log


⚖️ Licenza

Licenza MIT - Libero di utilizzare per progetti personali e commerciali.


👨‍💻 Autore

Sviluppato da joaopedrodev, con l'obiettivo di rendere lo sviluppo di MQL più professionale, organizzato ed efficiente.

Tradotto dall’inglese da MetaQuotes Ltd.
Codice originale https://www.mql5.com/en/code/59821

Indice di volume positivo Indice di volume positivo

Il Positive Volume Index (PVI) mette in relazione un aumento del volume con una variazione del prezzo di un titolo.

Caricatore di storia Caricatore di storia

Modulo funzionale Multicurrency Expert Advisor per organizzare l'accesso a qualsiasi dato storico con l'elaborazione del risultato dell'interrogazione.

Rsi Engulfing Bar V2 Rsi Engulfing Bar V2

Indicatore Rsi

Libreria per le operazioni sulle matrici Libreria per le operazioni sulle matrici

Libreria per lavorare con le matrici: creazione di matrici e operazioni di base con esse: addizione, sottrazione, moltiplicazione, inversione.