J'ai récemment été chargé d'ajouter des instructions de journalisation à chaque méthode appeler dans une solution. Ces entrées de journal doivent contenir le nom de la classe et de la méthode. P>
Je sais que je peux utiliser méthodybase.getcurrentMethod () code> et le
pileFrame.getMethod () code> méthodes. Ce qui est mieux? Y a-t-il un moyen meilleur (ou plus performant) d'obtenir le nom de la classe et de la méthode? P>
3 Réponses :
À propos de la méthode Il semble que StackFrame et la méthodebase sont les solutions les plus obtenues, je ne peux pas commenter sur lequel est plus efficace. P> this.getType (). Tostring () code> devrait vous obtenir la classe p>
Devrait-il être cela.getType (). Tostring ()? ou est-ce que je manque autre chose
Objet.tostring () retournera le nom de la classe sauf si la touche () était remplacée.
J'ai deux suggestions: p>
Faites une action Prebuild personnalisée où vous remplacez une sorte de talon au début de chaque méthode: p>
VOI PERFORMATIONSOCTION () { // put_logging_here } p> li> ol>
Ensuite, dans l'outil personnalisé, remplacez ces talons avec des noms de méthodes. Ceci est la méthode la plus rapide garantie, mais nécessite des investissements. P>
Serais-ce que je pouvais, j'ai déjà élevé cette suggestion. Pas que ce n'est pas un excellent point.
Eh bien, le moyen le plus rapide / le plus rapide est d'inclure une chaîne dans chaque fonction. Cela peut ne pas apparaître la solution la plus pratique, mais ou vous pouvez écrire p> maintenant, si vous souhaitez obtenir le nom de la fonction Appelé em> la fonction actuelle (c'est-à-dire que vous souhaitez le faire dans une seule place de votre fonction de journalisation), votre seule option est la seule lecture via la charme de la pile. p> p> Methodbase.getCurrentMethod () code> nécessite un codage à l'intérieur de chaque méthode qui l'utilise quand même. c'est-à-dire que vous pouvez écrire
Si je me souviens bien, Methodbase.getCurrentMethod () peut également renvoyer différents résultats sur la base de tout inlinge / optimisation effectué par le compilateur, les noms de fonction de code de code horaire peuvent donc être plus fiables dans ce sens.
Vous pouvez automatiser le nom de la fonction, y compris la chaîne au processus de construction.
chaque méthode i>? Il existe des moyens plus facilement de rendre votre application dix mille fois plus lente ou de générer un gigaoctet de texte une minute.
Mon sort dans la vie est seulement de faire ce que le client demande.
Il existe une place dans la relation de conseil pour des critiques constructives et, en fait, c'est une partie importante du travail. J'ai travaillé sur des projets qui avaient ce genre de journalisation oligo-oligo-echolique et il est généralement abouti à tous ignorer les journaux à moins qu'ils ne devaient absolument prendre les plusieurs heures, il faudrait creuser.
@Dan, je l'ai mentionné. J'ai généralement la même expérience avec ce genre de journalisation. Il est généralement nécessaire que cela indique une question de conception beaucoup plus profonde (qui a définitivement ce projet). Le facteur primordial est que vous devez prendre la voie la plus efficace pour expédier le logiciel. Je déteste l'admettre, mais dans ce cas, le client a raison.