De l'utilisation des niveaux de Logs

muqaddarmuqaddar Administrateur
mai 2014 modifié dans Xcode et Developer Tools #1

Bête question, à  quoi sert le Log Verbose exactement (Lumberjack) ?


On dirait le Log Info qui servirait à  dire des choses encore moins importantes ?


 


  [[DDTTYLogger sharedInstance] setForegroundColor:[UIColor colorWithHex:@e12323] backgroundColor:nil forFlag:LOG_FLAG_ERROR];


  [[DDTTYLogger sharedInstance] setForegroundColor:[UIColor colorWithHex:@d79413] backgroundColor:nil forFlag:LOG_FLAG_WARN];


  [[DDTTYLogger sharedInstance] setForegroundColor:[UIColor colorWithHex:@47991f] backgroundColor:nil forFlag:LOG_FLAG_INFO];


  [[DDTTYLogger sharedInstance] setForegroundColor:[UIColor colorWithHex:@c22ec7] backgroundColor:nil forFlag:LOG_FLAG_DEBUG];


  [[DDTTYLogger sharedInstance] setForegroundColor:[UIColor colorWithHex:@234be1] backgroundColor:nil forFlag:LOG_FLAG_VERBOSE];


 


Par exemple, vous utiliseriez Info ou Verbose pour:


 


DDLogVerbose(@applicationDidEnterBackground);


 


Quelles sont vos habitudes sur les logs ?


Réponses

  • CéroceCéroce Membre, Modérateur

    Quelles sont vos habitudes sur les logs ?

    Je logge le moins possible. Si quelque chose apparait dans la console, je dois y prêter attention.
  • muqaddarmuqaddar Administrateur


    Je logge le moins possible. Si quelque chose apparait dans la console, je dois y prêter attention.




     


    Je pensais comme toi avant. Mais avec la notion de couleur, cette "attention" change.

  • KaroxysKaroxys Membre
    mai 2014 modifié #4

    Bonjour !


     


    Moi je mets verbose pour toutes les requêtes (chaine json) envoyé et récupéré du serveur.


    Je mets info pour les logs métier.


    Je mets warn quelques erreurs fonctionnelles pertinentes selon moi.


    Je mets error les plus importantes qui peuvent m'aider à  identifier un bug.


     


    Pour ton cas j'aurais mis info si je dois choisir mais en temps normal je ne loggue pas.


     


    PI : Pour le fonctionnement en mode AdHoc ou sur l'App Store je n'ai que les logs erreurs et c'est crashlytics qui me donne la classe et la méthode du plantage.


     


     


    K.


  • AliGatorAliGator Membre, Modérateur

    Moi avec ma notion à  la fois de couleurs et de LogModules au contraire je n'hésite pas à  loguer.


     


    La notion de LogModules me permet de choisir le LogLevel pour chacun des modules que je prévois dans mon appli " en général je crées un LogModule pour "Network", un autre pour "CoreData", un autre pour "UI", et le reste ça dépend du projet.


     


    Ainsi, je peux désactiver tous les logs, sauf les logs UI que je mets au level "Info" et les logs Network que je mets au level "Error". Ainsi j'ai juste des logs pour l'UI, et les logs concernant le réseau je n'ai que ceux relatifs aux erreurs. Et si un jour je dois déboguer un problème sur mes requêtes réseau, je passe mon LogModule "Network" au level "Info" ou "Verbose" et j'ai d'un coup toutes les traces nécessaires, le temps de déboguer, puis de repasser le LogModule en un niveau plus silencieux pour éviter d'être trop verbeux.


     


    C'est super efficace et très pratique, et permet à  chaque développeur d'activer uniquement les logs des modules qu'il l'intéresse, au niveau de verbosité qui l'intéresse.


  • muqaddarmuqaddar Administrateur
    mai 2014 modifié #6

    Merci pour vos retours, ça va loguer sec. ;)


     


    @Karoxys: je suis aussi en ERROR uniquement en production.


  • FKDEVFKDEV Membre
    Pour répondre à  ta 1ere question : le niveau verbose est le niveau bavard.

    Il permet de logger toutes les activités pour avoir une idée de ce que fait l'app, par exemple, comme Karoxys toutes les questions/réponses réseaux.

    En général, on l'active seulement quand on a du mal à  trouver un bug, ou lors de phases de tests unitaires.

    Pour trouver un bug il est souvent plus pratique de poser un point d'arret mais dans certaines situations, comme des problemes multitache, ça peut être pratique d'avoir un log Verbose.
  • muqaddarmuqaddar Administrateur


    Pour répondre à  ta 1ere question : le niveau verbose est le niveau bavard.

    Il permet de logger toutes les activités pour avoir une idée de ce que fait l'app, par exemple, comme Karoxys toutes les questions/réponses réseaux.




     


    Je m'en servirais pour les requêtes SQL.


     




    En général, on l'active seulement quand on a du mal à  trouver un bug, ou lors de phases de tests unitaires.

    Pour trouver un bug il est souvent plus pratique de poser un point d'arret




     


    Je ne procède que comme ça, mais c'est vrai que j'en avais marre d'aller de temps en temps décommenter mon NSLog sur le contenu d'une requête...

  • yoannyoann Membre

    Je ne connais pas cette API de log, mais s'ils sont pas trop débile et qu'ils ont repris le standard en la matière, vous trouverez la définition des niveaux de log ici http://fr.wikipedia.org/wiki/Syslog#Niveau_de_gravit.C3.A9


  • muqaddarmuqaddar Administrateur
    mai 2014 modifié #10

    Il y a 5 niveaux par défaut:


     



    By default, Lumberjack comes with 5 pre-defined log levels:


    • Error
    • Warn
    • Info
    • Debug
    • Verbose

     



     


    Mais on peut en rajouter et faire ce qu'on veut.


    Moi, 5, ça me va, après c'est la foire.


  • yoannyoann Membre


    Il y a 5 niveaux par défaut:


     


     


    Mais on peut en rajouter et faire ce qu'on veut.


    Moi, 5, ça me va, après c'est la foire.




     


    Tellement la foire que l'ensemble des logiciels UNIX utilisent ces 8 niveaux de log :-)

  • muqaddarmuqaddar Administrateur


    Tellement la foire que l'ensemble des logiciels UNIX utilisent ces 8 niveaux de log :-)




     


    J'ai vu que ça pouvait monter jusqu'à  20... Moi 5, ça me suffit.

  • Juste pour info j'en utilise que 4. Je ne vois pas trop l'utilité du mode DEBUG sur iOS.


     


    @muqaddar: Tu l'utilises pour quoi par exemple ?


     


    K.


  • muqaddarmuqaddar Administrateur


    Juste pour info j'en utilise que 4. Je ne vois pas trop l'utilité du mode DEBUG sur iOS.


     


    @muqaddar: Tu l'utilises pour quoi par exemple ?


     


    K.




     


    Je ne l'utilise pas.


    Mais on pourrait le mettre pour un truc qu'on doit débuguer dans un futur proche mais qu'on ne veut pas faire maintenant (pour ne pas oublier), bien sûr dans le cas d'un bug sans plantage....

  • yoannyoann Membre
    mai 2014 modifié #15


    J'ai vu que ça pouvait monter jusqu'à  20... Moi 5, ça me suffit.




     


    Non, ce qui peut monter jusqu'à  20 c'est le nombre de facilités en syslog, c'est à  dire de catégorie de logiciel (mail, sécu, système, user, etc.).


     


    Cette partie ne t'intéresse pas.


     


    Ce qui t'intéresse c'est le classement de sévérité des 8 niveaux de syslog et leur usage tout à  fait logique.


     


    0 Emergency, Système inutilisable.


    1 Alert., Une intervention immédiate est nécessaire.


    2 Critical, Erreur critique pour le système.


    3 Error, Erreur de fonctionnement.


    4 Warning, Avertissement.


    5 Notice, à‰vénement normal méritant d'être signalé.


    6 Informational, Pour information.


    7 Debug, Message de mise au point.


Connectez-vous ou Inscrivez-vous pour répondre.