IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Découvrez Loguru : une nouvelle bibliothèque de journalisation simple et flexible


Sujet :

C++

  1. #1
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut Découvrez Loguru : une nouvelle bibliothèque de journalisation simple et flexible
    Découvrez Loguru : une nouvelle bibliothèque de journalisation simple et flexible

    La journalisation est une technique appréciée par tous les développeurs. Elle permet de voir ce que le programme a réussi, mais aussi d'avoir des détails sur ce qui n'a pas marché. Généralement, la journalisation se fait dans un fichier, mais peut se faire aussi sur la sortie standard. Google propose sa propre solution au problème glog. Voici ce qu'écrit glog dans le terminal :
    Et ce genre de résultat est très simple à avoir : il suffit de rajouter un fichier d'entête (et de lier la bibliothèque) et d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LOG(INFO) << "Mon super message de log du jour";
    La bibliothèque rajoutera elle-même le temps de l'exécution et le fichier où la journalisation a été demandée. C'est pratique, efficace, mais pas assez pour tous.

    Ainsi, Loguru a été développé.

    Loguru est une bibliothèque sous la forme d'un simple fichier d'entête. Pas de bibliothèque à lier au projet cette fois-ci. Par rapport à glog, les journaux sont plus faciles à lire grâce à l'utilisation d'un affichage en colonne et contiennent la date. De plus, il est possible d'indenter les messages dans le journal, notamment pour délimiter des segments.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LOG_SCOPE_F(INFO, "Iteration %d", i);
    L'indentation va automatiquement être annulée à la sortie du bloc.

    Avec Loguru, il est possible de :
    • faire une journalisation dans plusieurs fichiers et avoir un fichier qui rassemble tous les journaux ;
    • utiliser des callbacks permettant, par exemple, d'afficher les messages dans un jeu ;
    • choisir entre une syntaxe à la printf() ou en flux ;
    • analyser les journaux avec grep.


    Le développeur de la bibliothèque estime que Loguru est plus rapide que glog, tout en écrivant chaque message dans sa destination (pour éviter de perdre un message à cause d'un crash).

    Loguru peut faire tout ce que fait glog et peut même reprendre la même syntaxe que celle proposée par la bibliothèque de Google. Ainsi, la migration est fortement simplifiée.

    Finalement, Loguru est dans le domaine public. Vous pouvez trouver le code sur GitHub.


    Votre opinion

    Quelle bibliothèque de journalisation utilisez-vous ? Pourquoi ?


    Source

    Blog de présentation de Loguru
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  2. #2
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 695
    Points : 2 434
    Points
    2 434
    Par défaut
    Le code est assez moderne (c++11), plutôt propre et est header only.
    J'ai bien envie de l'essayer du coup .
    Je fais appel aux esprits de Ritchie, Kernighan, Stroustrup et Alexandrescu
    Donnez moi la force, donnez moi le courage de coder proprement !

    « Ça marche pas » n'est PAS une réponse convenable, merci de détailler le souci en fournissant l’environnement, le code source, les commandes et les messages d'erreur.

    Ce club possède également un clavardage, on y trouve quelques perles entre deux sessions d'entraides.

  3. #3
    Membre averti Avatar de Dalini71
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 181
    Points : 343
    Points
    343
    Par défaut
    Ça à l'air vraiment sympa en effet.

    Reste à voir ce que ça va donner sous Windows

  4. #4
    Invité
    Invité(e)
    Par défaut
    J'ai essayé sous windows, cela ne compile pas.

    J'ai fait remonté le problème sur la page du projet.

  5. #5
    Expert confirmé Avatar de AoCannaille
    Inscrit en
    Juin 2009
    Messages
    1 413
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 1 413
    Points : 4 734
    Points
    4 734
    Par défaut
    Citation Envoyé par Gumichan01 Voir le message
    J'ai essayé sous windows, cela ne compile pas.

    J'ai fait remonté le problème sur la page du projet.
    D'ailleurs il a déjà proposé une correction, tu l'as essayé?

  6. #6
    Expert éminent
    Avatar de Matthieu Vergne
    Homme Profil pro
    Consultant IT, chercheur IA indépendant
    Inscrit en
    Novembre 2011
    Messages
    2 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant IT, chercheur IA indépendant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2 264
    Points : 7 760
    Points
    7 760
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Finalement, Loguru est dans le domaine public.
    Que du bon... sauf que ça se limite à une mention de domaine public dans le readme apparemment, difficile de faire valoir ça pour une licence... J'aurais préféré qu'il utilise par exemple CC0, dire d'avoir une licence concrète.
    Site perso
    Recommandations pour débattre sainement

    Références récurrentes :
    The Cambridge Handbook of Expertise and Expert Performance
    L’Art d’avoir toujours raison (ou ce qu'il faut éviter pour pas que je vous saute à la gorge {^_^})

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par AoCannaille Voir le message
    D'ailleurs il a déjà proposé une correction, tu l'as essayé?
    Oui, je viens de le faire, mais je dois mettre à jour g++. La version que j'utilise (4.7.1) ne gère pas totalement la concurrence en C++11 . Ou sinon j'essaie avec Clang.

Discussions similaires

  1. WWDC : Apple dévoile Metal, une nouvelle bibliothèque graphique
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 03/06/2014, 14h02
  2. Mantle : une nouvelle bibliothèque graphiques pour mieux contrôler le GPU
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 5
    Dernier message: 15/11/2013, 11h51
  3. [Article] Fly.js, présentation d'une nouvelle bibliothèque JavaScript
    Par Extaze dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 10/09/2012, 11h40
  4. Réponses: 323
    Dernier message: 11/06/2010, 20h23
  5. Utilisation d'une nouvelle bibliothèque (cygwin)
    Par hnouna2007 dans le forum Linux
    Réponses: 0
    Dernier message: 16/05/2009, 17h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo