首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SpringBoot详细打印启动异常堆栈信息

SpringBoot在项目启动如果遇到异常并不能友好的打印出具体的堆栈错误信息,我们只能查看到简单的错误消息,以致于并不能及时解决发生的问题,针对这个问题SpringBoot提供了故障分析仪的概念(failure-analyzer...内部提供一个分析的方法,源码如下所示: @FunctionalInterface public interface FailureAnalyzer { /** * Returns...org.springframework.boot.diagnostics.FailureAnalyzer=\ org.minbox.chapter.springboot.failure.analyzer.PortInUseFailureAnalyzer 那我们为什么需要使用这种方式定义呢...启动异常分析继承关系 自定义的运行异常一般都是继承自RuntimeException,如果我们定义一个RuntimeException的异常启动分析实例会是什么效果呢?...总结 根据本章我们了解了SpringBoot提供的启动异常分析接口以及基本抽象实现类的运作原理,而且启动异常分析存在分析泛型异常类的上下级继承关系,异常子类的启动分析会覆盖掉异常父类的启动分析,如果你想包含全部异常的启动分析可以尝试使用

1.3K10

如何打印Msbuild的日志信息

代码出bug会让你发狂,那么编译出了bug呢? ---- ? 你看到这个错误会怎么办,没错去google“Error RG1000 未知的生成错误 已添加了具有相同键的项” ?...OK,换一个思路,我们在编译出错了,肯定是有错误提示,只是vs把这个提示的细节忽略了。 那么我们是不是可以试试命令行呢。 试了一下。可以哟,编译过程的内容在cmd中有输出,还发现了红字。...(项目原因,不上图了) 但是这里的信息似乎有些太多啦,很难在cmd窗口中发现问题代码。 OK,那我们是否可以寻找一种将msbuild日志输出的方法呢?...本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。...欢迎转载、使用、重新发布,但务必保留文章署名黄腾霄(包含链接: https://xinyuehtx.github.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。

1.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

如何正确地打印异常堆栈信息

而已,没想到原来一直都使用错了,以至于有些错误信息没能在log文件中打印出堆栈信息,最终难以定位bug,排查困难。...如何正确地打印异常的堆栈信息? 一般在catch到异常的时候,不要使用e.printStackTrace()来打印异常信息。...我们使用日志框架来打印信息,一般来说,日志框架的log级别从低到高是:debug, info, warn, error, fatal。 对于异常,一般使用log.error()来打印堆栈信息。...对于第二个log语句,只是打印出了异常的具体信息,既没有异常类名,也没有堆栈信息。 对于第三个log语句,打印出了异常的类名和具体信息,但是没有打印出来堆栈信息。...总结一下,就是我们应该使用第一种log语句的形式来将堆栈信息打印出来,方便日后定位bug,排除错误。 警告 本文最后更新于 November 11, 2018,文中内容可能已过时,请谨慎使用

1.3K00

Lua调用C++打印堆栈信息

公司的手游项目,使用的是基于cocos2d-x绑lua的解决方案(参数quick-x的绑定),虽然使用了lua进行开发,更新很爽了,但是崩溃依然较为严重,从后台查看崩溃日志,基本上只能靠“猜”来复现bug...更为郁闷的是很多时候并没有使用log输出,在崩溃日志里还无法查看大概在哪一步操作崩溃的… 后来在网上搜索了一下,受到一点启发,lua代码在执行的时候可随时调用debug.traceback()方法来获得调用栈的字符串信息...打印lua调用堆栈的方法: // 打印lua调用栈开始 lua_getglobal(tolua_S, "debug"); lua_getfield(tolua_S, -1, "traceback...tolua_S, -1); CCLOG(sz); self->\1;' byline="true" flags="g"/> 注: 为换行符 参数资源: lua调用C++函数崩溃,...查看lua的调用栈信息 (特别适用于tolua++) cocos2d-x集成lua 导出 C/C++ API 给 Lua 使用 build.xml示例 Ant-Tasks

2.8K20

如何在条码打印软件中使用打印保存

,具体操作如下: 1.在条码打印软件,使用序列生成生成两个可变的数据之后,可以选中某一个数据双击,在图形属性-数据源中,勾选打印保存,点击浏览,设置一下保存路径,分别把标签上的每一个内容...,保存到一个TXT文本中,然后点击确定 打印保存1.jpg 2.点击软件上方工具栏中的打印设置按钮 ,在打印设置对话框中,勾选PDF文档前面的复选框,然后设置一下保存路径,点击打印...打印保存2.jpg 3.在桌面上打开我们刚才勾选打印保存,保存的TXT文本,看下每个标签分别保存到TXT文本的效果。...打印保存3.jpg 还有一种效果是把标签上的多个内容保存到同一个TXt文本中,分别选中标签上的两个内容,勾选打印保存,路径都设置为C。...效果如下图: 1561947667(1).jpg 以上就是有关在条码打印软件中使用打印保存的功能,可以根据自己的需求选择不同的TXT文本效果,如何在条码打印软件中设置可变的数据,可以参考在中琅可变数据打印软件上如何设置流水号

2.3K20

log日志中不打印异常栈的具体信息

问题与分析 最近在查项目的log发现报了大量的NPE(NullPointerException),诡异的是只log了Exception的类名,却没有具体的堆栈信息,以致于无法对该NPE异常进行准确定位...这是因为jvm自身存在着优化机制,但一个同样的异常重复出现并被打印到log后,jvm可以不提供具体的堆栈信息来提高性能。...谷歌翻译如下: 服务器VM中的编译器现在为所有“冷”内置异常提供正确的堆栈回溯。出于性能目的,当抛出这样的异常几次,可以重新编译该方法。...重新编译之后,编译器可以使用不提供堆栈跟踪的预分配异常来选择更快的策略。要完全禁用预分配的异常,请使用以下新标志:-XX:-OmitStackTraceInFastThrow。...重启服务器jvm被重新启动,这样再遇到同样的Exception就会打印出来,当然如果后续如果重复遇到同样的Exception还是无法打印出具体的异常信息

93920

异常解决:jvm配置+OmitStackTraceInFastThrow 导致不打印日志具体信息

背景 运营人员反馈线上某些操作异常,导致无法继续,但是只有个别,通过查询发现异常如下: ? 很奇怪的一种发现,api去调dubbo发现居然只有api的空指针,但是没有具体的原因。继续排查dubbo。...通过invoke 调用dubbo接口发现,异常居然打印不全.....只有java.lang.NullPointerException ? 百思不得其解........总算复现以上bug,但是为什么只有空指针异常没有详细信息呢? 通过查询jdk5以后jvm做了一个优化,当同样错误日志频繁打印,JIT会重新编译抛出没有堆栈的信息异常。...最后到一定数量虚拟机就直接吃掉堆栈错误信息,只剩下空指针异常~ ? 配置打印全部日志 -XX:-OmitStackTraceInFastThrow ? 可以看出打印了全部日志 ?...www.cnblogs.com/liushijie/p/5446347.html http://www.voidcn.com/article/p-tzxpekml-bn.html 本人工作之余,长期在线答疑解惑(帮助新手

1.3K10

使用动态输出打印内核的DEBUG信息

使用动态输出在不需要重新编译内核的情况下,方便的打印出内核的debug信息。 要开启动态输出,内核需要添加CONFIG_DYNAMIC_DEBUG。...开启宏之后,pr_debug(),dev_dbg() ,print_hex_dump_debug(),print_hex_dump_bytes()`所有信息都可以被动态打印出来。...这变化操作如下所示: - //移除给定的标记 + //加入给定的标记 = //设置标记到给定的标记上 f //包含已打印消息的函数名 l //包含已在打印消息的行号 m //包含已打印消息的模块名...这时可以在内核启动传递参数给内核,在系统初始化时就打开它们。 例如,在内核命令行中添加 usbnet.dyndbg=+plft ,就可以在启动打开 usbnet的动态输出。.... echo -n 'format "nfsd: READ" +p' > /sys/kernel/debug/dynamic_debug/control 查看输出的信息可以使用 dmesg | grep

1.7K40

Python使用sys.exc_info()方法获取异常信息

在实际调试程序的过程中,有时只获得异常的类型是远远不够的,还需要借助更详细的异常信息才能解决问题。...捕获异常,有 2 种方式可获得更多的异常信息,分别是: 使用 sys 模块中的 exc_info 方法; 使用 traceback 模块中的相关函数。...本节首先介绍如何使用 sys 模块中的 exc_info() 方法获得更多的异常信息。 有关 sys 模块更详细的介绍,可阅读《Python sys模块》。...其中,通过前 2 个元素可以看出抛出的异常类型以及描述信息,对于第 3 个元素,是一个 traceback 对象,无法直接看出有关异常信息,还需要对其做进一步处理。...… 可以看到,输出信息中包含了更多的异常信息,包括文件名、抛出异常的代码所在的行数、抛出异常的具体代码。

1.4K41

python中callback_python安装后怎么打开

刚接触Python的时候,简单的异常处理已经可以帮助我们解决大多数问题,但是随着逐渐地深入,我们会发现有很多情况下简单的异常处理已经无法解决问题了,如下代码,单纯的打印异常所能提供的信息会非常有限...那么到底要如何打印更加详细的信息呢?下面我们就来一一介绍。...”Traceback (most…)”信息以及最后一行的异常类型和value信息 还有一个不同是当异常为SyntaxError,会有”^”来指示语法错误的位置 print_exc print_exc是简化版的...获取线程中的异常信息 通常情况下我们无法将多线程中的异常带回主线程,所以也就无法打印线程中的异常,而通过上边学到这些知识,我们可以对线程做如下修改,从而实现捕获线程异常的目的。...本站提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

54010
领券