Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Twitter !
Rejoignez notre page de fans
Un script intéressant ?
Poster un lien vers celui-ci -
laisser les autres l'évaluer
Vous avez aimé le script ? Essayez-le dans le terminal MetaTrader 5
Bibliothèque

Logify - Library for log management - bibliothèque pour MetaTrader 5

Vues:
112
Note:
(4)
Publié:
\MQL5\Experts\Logify\ \MQL5\Include\Logify\
Logify.mqh (25.24 KB) afficher
\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) afficher
MQL5 Freelance Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

Logify est une bibliothèque de journalisation pour MQL conçue pour simplifier le débogage, le suivi et la surveillance des EA et des indicateurs. Elle fournit des journaux structurés, personnalisables et organisés directement sur le graphique ou dans le terminal, avec la prise en charge des niveaux de journaux, des formats flexibles et des gestionnaires multiples. Une solution légère et élégante, facile à intégrer dans vos projets MQL.


📦 Caractéristiques

  • Plusieurs niveaux de journalisation : DEBUG, INFO, ALERT, ERROR, FATAL
  • Affichage des logs directement sur le graphique, le terminal, les fichiers ou même la base de données
  • Format et mise en page des journaux personnalisables
  • Architecture modulaire avec plusieurs gestionnaires
  • Léger et facile à intégrer et à utiliser


Installation

  1. Copiez le dossier /Logify dans :
    MQL5/Include/
  2. Incluez Logify dans votre EA, indicateur ou script :
    #include <Logify/Logify.mqh>
  3. Il est possible d'installer en utilisant Git, il suffit d'accéder au dépôt et de suivre les étapes.



🔧 Exemple de démarrage rapide

Exemple simple avec les paramètres par défaut :

//+------------------------------------------------------------------+
//| Importation|
//+------------------------------------------------------------------+
#include <Logify/Logify.mqh>
CLogify Logify;
//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'expert|
//+------------------------------------------------------------------+
int OnInit()
  {
   //--- Exemple de journaux
   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);
  }
//+------------------------------------------------------------------+

Exemple avancé, avec des paramètres de handler personnalisés. Dans cet exemple, nous sauvegardons l'enregistrement du journal dans des fichiers et dans le commentaire du graphique. Personnalisation des paramètres pour chacun d'entre eux.

//+------------------------------------------------------------------+
//| Importation|
//+------------------------------------------------------------------+
#include <Logify/Logify.mqh>
CLogify Logify;
//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'expert|
//+------------------------------------------------------------------+
int OnInit()
  {
   //--- Configurer le gestionnaire de commentaires
   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";

   //--- Créer et configurer le gestionnaire de commentaires
   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"));
   
   //--- Configurer le gestionnaire de fichiers
   MqlLogifyHandleFileConfig file_config;
   file_config.CreateDateRotationConfig("my_expert","logs",LOG_FILE_EXTENSION_LOG,10,100,CP_UTF8);
   
   //--- Créer et configurer le gestionnaire de fichiers
   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"));
   
   //--- Attacher le gestionnaire
   Logify.AddHandler(handler_comment);
   Logify.AddHandler(handler_file);

   //--- Exemple de journaux
   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);
  }
//+------------------------------------------------------------------+

Pour comprendre chacun des paramètres, je vous recommande de lire les articles ci-dessous, dans lesquels j'explique chaque étape du développement de la bibliothèque :


✔️ Niveaux de journaux

Niveau
Description des niveaux de journalisation
DEBUG
Informations détaillées pour le débogage
INFO
Informations générales
ALERT
Avertissements ou événements importants
ERROR
Erreurs nécessitant une attention particulière
FATAL
Erreurs critiques, arrêt de l'exécution


🖥️ Manipulateurs inclus

Chaque gestionnaire définit l'endroit où les journaux seront affichés ou stockés.

Gestionnaire
Description
Commentaire
Affiche les journaux directement sur le graphique (Commentaire)
Console
Affiche les journaux dans le terminal MetaTrader
Fichier
Sauvegarder les journaux dans des fichiers .txt ou .log
Base de données Stocke les journaux dans une base de données SQLite locale

Vous pouvez utiliser un ou plusieurs gestionnaires en même temps, comme graphique + fichier + console, par exemple.


🛠️ Format du journal

Exemple de modèle de formatage :

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

Jetons disponibles :

  • {levelname} : Nom du niveau (DEBUG, INFO, ERROR, etc.)
  • {msg} : Message principal
  • {args}: Arguments supplémentaires ou détails
  • {timestamp}: Horodatage en secondes (heure Unix)
  • {date_time}: Date et heure formatées (hh:mm:ss, etc.)
  • {level}: Code numérique pour le niveau (0 = DEBUG, 1 = INFO...)
  • {origin}: Origine ou contexte défini dans l'appel au journal
  • {filename}: Nom du fichier source (si disponible)
  • {function}: Nom de la fonction à partir de laquelle l'appel a été effectué
  • {line}: Numéro de ligne dans le code où le log s'est produit


⚖️ Licence

Licence MIT - Utilisation libre pour des projets personnels et commerciaux.


👨‍💻 Auteur

Développé par joaopedrodev, avec pour objectif de rendre le développement MQL plus professionnel, organisé et efficace.

Traduit de l’anglais par MetaQuotes Ltd.
Code original : https://www.mql5.com/en/code/59821

Indice de volume positif Indice de volume positif

L'indice de volume positif (PVI) établit un lien entre une augmentation du volume et une variation du prix d'un titre.

Chargeur d'histoire Chargeur d'histoire

Module fonctionnel de l'Expert Advisor multidevise pour organiser l'accès à toute donnée historique avec traitement du résultat de la requête.

Rsi Engulfing Bar V2 Rsi Engulfing Bar V2

Indicateur Rsi

Bibliothèque pour les opérations matricielles Bibliothèque pour les opérations matricielles

Bibliothèque pour travailler avec des matrices : création de matrices et opérations de base avec celles-ci : addition, soustraction, multiplication, inversion.