昨天财务出现一个问题,线上一直在报错:日志截屏如下:
有异常,但是就只有一个java.lang.NullPointerException异常,这个没有堆栈信息,我怎么查问题呢?后来经过查询,这个问题其实是跟JDK5引入的一个新特性有关,对于一些频繁抛出的异常,JDK为了性能会做一个优化,在JIT重新编译后会抛出没有堆栈的异常。在使用server模式的时候,这个优化是开启的,我们的服务器跑在server模式下并且jdk版本是6,因此在频繁抛出java.lang.NullPointerException异常一段时间后优化开始起作用,只抛出没有堆栈的异常信息了。参考文档:http://java.sun.com/j2se/1.5.0/relnotes.html#hotspot
为了验证,我还简单写了一段代码验证下:
- public class TestLog {
- public static void main(String[] args) {
- int i = 1;
- while (i <= 200000) {
- try {
- Long l = null;
- l.toString();
- } catch (Exception e) {
- if (e.getStackTrace().length == 0) {
- System.out.println("count is" + i);
- break;
- }
- }
- i++;
- }
- }
- }
运行结果:
[fin@vm-crm-dev-144-100 longer]$ java TestLog
count is20708
为了能看到堆栈,可以重启服务器再观察,也可以看下以前老的日志。
但是大部分情况下,我们建议还是去掉此优化:通过启动参数中加入:
-XX:-OmitStackTraceInFastThrow
分享到:
相关推荐
在SpringBoot中使用logback优化异常堆栈的输出.doc
假设需要把发生异常错误的信息写入到log.txt日志文件中去: import traceback import logging ... #方案一,自己定义一个文件,自己把错误堆栈信息写入文件。 #errorFile = open('log.txt', 'a') #errorFil
主要给大家介绍了关于Spring Boot详细打印启动时异常堆栈信息的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
在本篇文章里小编给大家整理的是关于SpringBoot打印启动时异常堆栈信息,有需要的朋友们可以学习下。
将try except中捕获到的异常信息输出到日志文件中,方便查找错误原因,tranceback模块提供了把详细出错堆栈信息格式化成字符串返回函数format_exc(). 具体代码如下 import traceback import logging logging....
用于Log4j,apache Logger打印堆栈信息 由于网上没这一部分信息,自己就把它写出来了 其实也就短短几句代码 在捕捉异常的时候使用该类即可
以下是调用的方法,在主程序入口函数第一行动态加载异常捕获库,崩溃后可以在运行目录下生成如【进程名称.exception】的文件,可以看到崩溃的堆栈信息 void main() { //Install our crash handler HMODULE ...
通过几种方法做调试都不能重现问题,没有办法,只有在程序中添加回复的地方添加日志程序来记录堆栈,从而追踪到是哪个途径发帖出现了问题。代码: 代码如下:[PostProviderExtension] public class HasImageE
错误和异常信息:日志文件用于记录应用程序的错误和异常情况,包括错误消息、堆栈跟踪和异常信息。这些日志对于故障排查和问题定位非常重要。 状态和性能信息:日志文件可以记录应用程序的状态和性能信息,如请求...
图形异常跟踪视图(日志详细信息视图) (+ 点击放大) 使用图形流程图查看异常跟踪 显示或隐藏库包 查看原文日志 使用谷歌搜索搜索库包信息 安慰 (+ 点击放大) 使用 WebSocket 实时提供所有日志 与日志查看页面相同的...
这是一个基于GO语言的服务器日志系统,使用起来会非常方便,API接口简洁,易于嵌入到目前的项目工程中。 1.支持按日备份,跨天会...支持捕获异常操作,并将异常信息及出错时运行堆栈保存在exception目录中,按时间存放
操作异常日志 控件, 把对应的异常上传到服务器中查看。 服务器可以搭建在局域网、互联网
将异常(使用堆栈跟踪)和消息记录到远程服务器 按照以下说明安装 stacktrace.js 作为依赖项并将其添加到您的 angular 项目: : 将 act.Logging 声明为您的 Angular 应用程序的依赖项。 可以使用...
NLog是什么?...NLog完全实现了我们上面...这些上下文信息可以包含如下内容:当前的日期和时间(多种格式)记录等级来源名称输出跟踪消息的方法的堆栈信息环境变量的值异常的详细信息计算机、进程和线程名称其他,请参考:...
比如我们可以获取到抛出异常的时间、手机的硬件信息、错误的堆栈信息,然后将获取到的所有的信息发送到服务器中,也可以发送到指定的邮件中,以便及时修改bug。 示例: 自定义异常类实现UncaughtExceptionHandler...
回顾一下上一个J2EE工程,是否遇到过类似错误没有记 入日志或者被多次记录的情况?是否只是因为在某处代码吃 掉了异常导致你花费无数次时间来跟踪一个bug?是否你的用户直接看到了堆栈的跟踪信息?如果这样的话,你可能...
系统异常信息日志记录和查询。 登录日志:系统登录日志记录查询包含登录异常。 在线用户:当前系统中活跃用户状态监控。 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。 代码生成:前后端代码的生成...
1.可以分级别记录Log信息 方便打印 2.针对 Exception的log 可以详细打印出异常的堆栈详细信息和异常信息等,方便定位问题