La principale recherche de cet article est le contenu pertinent de la pile d'exception NON IMPRESSIONS LOG4J, comme suit.
Récemment, un phénomène a été trouvé dans le journal d'erreur du système en ligne:
Le code utilise log4j pour imprimer les informations de pile d'exception d'exécution du système. Les informations de pile ne peuvent pas être visibles dans le journal d'erreur, seules les informations d'exception sont disponibles. C'est un coup dur pour les programmeurs. S'il n'y a pas d'informations de pile, comment puis-je vérifier les bogues?
[01-15 11:29:26] [ERREUR] [org.apache.thrift.server.abstractNonBlockingServer $ framebuffer: 524] Inattendu inattendu lors de l'invocation!
Plus tard, j'ai découvert qu'il s'agit d'une optimisation de JDK. JVM optimisera les performances. Si une exception est fréquemment lancée, elle sera recompilée et n'imprimera plus la pile d'exception.
Il est également relativement simple de résoudre ce problème. Si vous ne souhaitez pas vérifier le journal précédent à chaque fois et regarder la pile, ajoutez -xx: -omitStackTraceinfastThrow au paramètre de démarrage, vous pouvez désactiver l'optimisation et forcer la pile d'exception à imprimer. Cela peut rendre le fichier journal trop grand, mais les fichiers journaux de la ligne de production avant aujourd'hui seront compressés, il ne pense donc pas que le problème n'est pas important.
[01-15 16:40:09] [ERREUR] [org.apache.thrift.server.abstractNonBlockingServer $ framebuffer: 524] Inattendu inattendu pendant invoquer!
java.lang.nullpointerException
sur com.iqiyi.ttbrain.recommend.selector.services.filterservice.filter2 (filterService.java:42)
sur com.iqiyi.ttbrain.recommend.thrift.ifilterService $ processeur $ filter2.getResult (ifilterService.java:181)
sur com.iqiyi.ttbrain.recommend.thrift.iFilterService $ processeur $ filter2.getResult (ifilterService.java:166)
sur org.apache.thrift.processfunction.process (processFunction.java:39)
sur org.apache.thrift.tbaseprocessor.process (tbaseprocessor.java:39)
à org.apache.thrift.server.abstractNonBlockingServer $ framebuffer.invoke (AbstractNonBlockingServer.Java:518)
sur org.apache.thrift.server.invocation.run (invocation.java:18)
sur java.util.concurrent.threadpoolexecutor.runworker (threadpoolExecutor.java:1145)
sur java.util.concurrent.threadpoolExecutor $ worker.run (threadpoolexecutor.java:615)
sur java.lang.thread.run (thread.java:745)
Ce qui précède concerne cet article sur la pile d'exception LOG4J non imprimer. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!