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

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

Le , par LittleWhite

0PARTAGES

12  0 
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
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
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

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Daïmanu
Membre émérite https://www.developpez.com
Le 10/12/2015 à 15:59
Le code est assez moderne (c++11), plutôt propre et est header only.
J'ai bien envie de l'essayer du coup .
0  0 
Avatar de Dalini71
Membre averti https://www.developpez.com
Le 11/12/2015 à 0:27
Ça à l'air vraiment sympa en effet.

Reste à voir ce que ça va donner sous Windows
0  0 
Avatar de
https://www.developpez.com
Le 11/12/2015 à 12:18
J'ai essayé sous windows, cela ne compile pas.

J'ai fait remonté le problème sur la page du projet.
0  0 
Avatar de AoCannaille
Expert confirmé https://www.developpez.com
Le 11/12/2015 à 13:56
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é?
0  0 
Avatar de Matthieu Vergne
Expert éminent https://www.developpez.com
Le 11/12/2015 à 17:02
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.
0  0 
Avatar de
https://www.developpez.com
Le 11/12/2015 à 19:29
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.
0  0