Coder Social home page Coder Social logo

autoit-logger's Introduction

Librairie Logger

Introduction

Cette librairie AutoIt3 permet d'écrire des logs sur un fichier.

Pour l'utiliser dans vos projets, ajoutez cette ligne en haut de votre fichier :

#include "logger.au3"

Le fichier "Zip.au3" doit être dans le même dossier que la librairie pour que celle-ci fonctionne.

Tout est déjà prêt, il ne reste plus qu'à appeler les fonctions

LogDebug("texte")
LogInfo("texte")
LogWarning("texte")
LogCritical("texte")

Fonctionnalités

Listes des fonctionnalités disponibles :

  • Plusieurs niveaux de logs (Debug, Info, Warning, Critical)
  • Filtrage des logs selon le niveau (Exemple : ne garder que le niveau Critical et Warning en production afin d'alléger les logs)
  • Rotations des logs paramètrables (Conserve 30 jours de logs par défaut)
  • Compression des logs après x jours (7 jours par défaut)
  • Fichiers datés

Les niveaux de logs sont hiérarchiques :

  1. NoLog
  2. Critical
  3. Warning
  4. Info
  5. Debug
  6. All

Par exemple, en choisissant le niveau de log Warning, seul les log de niveau Warning et Critical seront effectivement enregistrés.

Les noms de fichiers sont par défaut sous la forme "log_jj-mm-aaaa.txt"

Configuration

Fonctions de configurations :

Changement du niveau de log :

SetLogLevel($iLogLevel)

Les différents niveaux de logs sont :

  • $g_iLogLevelAll
  • $g_iLogLevelDebug
  • $g_iLogLevelInfo
  • $g_iLogLevelWarning
  • $g_iLogLevelCritical
  • $g_iLogLevelNoLog

Par défaut : $g_iLogLevelAll


Changement du repertoire de log :

SetLogDir($sLogDir)

Permet de configurer le chemin vers le repertoire de log.

Par défaut : Répertoire du script executé

Doit être sous la forme "C:\logs\" (ne pas oublier l'antislash à la fin)


Changement du délai de rotation des logs

SetLogRotate($iLogRotate)

Permet de configurer le nombre de jours durant lesquels les logs seront sauvegardés.

Par défaut : 30 jours

0 : Désactiver la rotation


Changement du délai de rotation de la compression des logs

SetLogCompressRotate($iLogCompressRotate)

Permet de configurer après combien de jours il faut compresser les logs

Par défaut : 7 jours

0 : Désactiver la compression des logs


Changement du préfixe du fichier de log

SetFilePrefix($sFilePrefix)

Permet de configurer le préfixe du nom de fichier qui sera sauvegardé.

Par défaut : "log"

Attention : en cas de changement, la rotation ne s'effectuera plus sur les fichiers avec l'ancien préfixe.


Changement de l'extension du fichier de log

SetFileExtension($sFileExtension)

Permet de configurer l'extension du fichier de log.

Par défaut : "txt"

Attention : en cas de changement, la rotation ne s'effectuera plus sur les fichiers avec l'ancien préfixe.

Utilisation

LogDebug($sLogValue)
LogInfo($sLogValue)
LogWarning($sLogValue)
LogCritical($sLogValue)

Ces fonctions permettent de logger directement le texte passé en paramètres.

Pour des raisons pratiques, une fonction vous permet de personnaliser le niveau de log :

LogOther($sLogLevel, $sLogValue, $bForce = False)

La variable $sLogLevel prend une chaîne de caractères qui correspondra au niveau de log écrit dans le fichier. La variable $sLogValue contient le texte à logguer.

Exemple : l'appel de la fonction

LogOther("TEST","Fichier présent")

Enregistrera dans le fichier de log une ligne sous cette forme :

[hh:mm:ss] TEST : fichier présent

Cette fonction n'enregistrera effectivement que si le niveau de log est situé à $g_iLogLevelAll, pour outrepasser cette limite et logger quel que soit le niveau configuré, passer le paramètre $bForce à True

Tests unitaires

Quelques tests sont disponibles dans le dossier test pour attester du bon fonctionnement du script.

Pour executer les tests, compiler le script "test-day.au3" afin de générer le fichier "test-day.exe", puis executer le script "unit-test.au3".

Un message d'erreur s'affichera si un test ne s'est pas effectué correctement.

Bugs ?

Les erreurs émanant du logger seront enregistrés dans les fichiers de log avec le niveau "LOGGER".

En cas de bugs, n'hésitez pas à ouvrir un ticket ;)

autoit-logger's People

Contributors

quentinlemcode avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.