Les différentes méthodes sont des indications de priorité. Comme vous les avez énumérées, elles vont du moins important au plus important. Je pense que la façon dont vous les mappez spécifiquement aux journaux de débogage dans votre code dépend du composant ou de l'application sur lequel vous travaillez, ainsi que de la façon dont Android les traite sur les différentes saveurs de construction (eng, userdebug, et user). J'ai fait une bonne quantité de travail dans les démons natifs d'Android, et voici comment je procède. Cela peut ne pas s'appliquer directement à votre application, mais il peut y avoir des points communs. Si mon explication semble vague, c'est parce que c'est plus un art qu'une science. Ma règle de base est d'être aussi efficace que possible, de m'assurer que vous pouvez raisonnablement déboguer votre composant sans tuer les performances du système, et de toujours vérifier les erreurs et les enregistrer.
V - Impressions de l'état à différents intervalles, ou lors de tout événement survenant que mon composant traite. Il est également possible d'imprimer de manière très détaillée les charges utiles des messages/événements que mon composant reçoit ou envoie.
D - Détails des événements mineurs qui se produisent dans mon composant, ainsi que les charges utiles des messages/événements que mon composant reçoit ou envoie.
I - L'en-tête de tout message/événement que mon composant reçoit ou envoie, ainsi que tout élément important de la charge utile qui est essentiel au fonctionnement de mon composant.
W - Tout ce qui se produit d'inhabituel ou de suspect, mais pas nécessairement une erreur.
E - Erreurs, c'est-à-dire des choses qui ne sont pas censées se produire lorsque les choses fonctionnent comme elles le devraient.
La plus grosse erreur que je vois commettre est de surutiliser des éléments comme V, D et I, mais de ne jamais utiliser W ou E. Si une erreur n'est, par définition, pas censée se produire, ou ne doit se produire que très rarement, alors il est extrêmement bon marché pour vous d'enregistrer un message lorsqu'elle se produit. D'un autre côté, si à chaque fois que quelqu'un appuie sur une touche, vous faites un Log.i(), vous abusez de la ressource de journalisation partagée. Bien sûr, faites preuve de bon sens et soyez prudent avec les journaux d'erreurs pour les choses hors de votre contrôle (comme les erreurs de réseau), ou celles contenues dans des boucles serrées.
Peut-être mauvais
Log.i("I am here");
Bon
Log.e("I shouldn't be here");
En gardant tout cela à l'esprit, plus votre code se rapproche de la "production ready", plus vous pouvez restreindre le niveau de journalisation de base de votre code (vous avez besoin de V en alpha, D en bêta, I en production, voire W en production). Vous devriez exécuter quelques cas d'utilisation simples et visualiser les journaux pour vous assurer que vous pouvez toujours comprendre ce qui se passe lorsque vous appliquez un filtrage plus restrictif. Si vous utilisez le filtre ci-dessous, vous devriez toujours être en mesure de savoir ce que votre application fait, mais peut-être pas d'obtenir tous les détails.
logcat -v threadtime MyApp:I *:S
0 votes
N'oubliez pas non plus l'utilisation de journaux personnalisés. Ils peuvent être très utiles pour cibler des scénarios spécifiques.