java运行异常日志_使用log4j记录Java中的运行时异常
小编典典
我不确定这是否是您要寻找的,但是有一个终止线程的异常处理程序。它是线程异常未明确捕获的任何异常的处理程序。
默认“未捕获的异常处理程序”只是调用printStackTrace()上Throwable打印的堆栈跟踪System.err。但是,您可以将其替换为自己的UncaughtExceptionHandler日志,将异常记录到log4j:
class Log4jBackstop implements Thread.UncaughtExceptionHandler {
private static Logger log = Logger.getLogger(Log4jBackstop.class);
public void uncaughtException(Thread t, Throwable ex) {
log.error("Uncaught exception in thread: " + t.getName(), ex);
}
}
如果使用的Runnable对象是执行程序框架,则该对象的线程可能具有自己的catch块,这些块可以防止异常到达未捕获的异常处理程序。如果您想在Runtime那里捕获异常,一种方法是将每个任务包装在日志记录包装器中,如下所示:
class Log4jWrapper {
private final Logger log;
private final Runnable target;
Log4jWrapper(Logger log, Runnable target) {
this.log = Objects.requireNonNull(log);
this.target = Objects.requireNonNull(target);
}
public void run() {
try {
target.run();
} catch(RuntimeException ex) {
log.error("Uncaught exception.", ex);
throw ex;
}
}
}
...
Runnable realTask = ...;
executor.submit(new Log4jWrapper(Logger.getLogger(Whatever.class), realTask));
2020-06-16
java运行异常日志_使用log4j记录Java中的运行时异常相关推荐
- java去掉mongodb日志_如何禁用mongoDB java驱动程序日志记录?
我试图禁用mongo- java-driver-3.0.0的日志输出. 我试图在我的应用程序开始之前设置它们,然后加载mongo驱动程序,但它没有帮助. // Enable MongoDB loggi ...
- java 打开gc日志_在运行时打开GC日志记录
java 打开gc日志 总是有下一个JVM表现不佳. 而且,您内心深知,如果您只有少数启动选项可以公开一些有关正在发生的事情的信息,那么您可能就有机会真正修复该死的东西. 但是不,您需要的标志( -X ...
- java 统一日志_基于log4j实现统一日志管理
背景: 一般操作系统级的告警有相关的软件,但我们应用级日志往往无法统一监控.分析.因为最近的项目是比较大的一个平台,有七.八个子系统,weblogic域也有三.四个.如果用户自身能够实时监控到应用级致 ...
- java高并发日志_高并发下log4j的性能瓶颈
开篇 近期由于业务需要进行业务迁移,期间因为误设置log4j的日志级别,导致系统性能整体下降,具体表现在QPS下降明显,系统RT上升.迁移期间由于各类系统环境较原来有较大差别,因为在排查过程中也走了一 ...
- java @valid 密码不一致_一个成熟的Java项目如何优雅地处理异常
(一)概述 异常处理是一个系统最重要的环节,当一个项目变得很大的时候,异常处理和日志系统能让你快速定位到问题.对于用户或者接口调用者而言,优雅的异常处理可以让调用者快速知道问题所在.本文将介绍如何优雅 ...
- 实现打印异常日志_老生常谈SpringAop日志收集与处理做的工具包
场景 : 使用Spring Aop拦截参数日志目前大部分做法都基本上大同小异,不想日后每个项目工程都写一份这样的Aop拦截处理日志的代码,甚至代码侵入. 我想知道一些相对重要的请求方法的请求参数,响应 ...
- java docx 内存溢出_第2章 Java内存区域与内存溢出异常
本章主要介绍了Java的内存区域以及会触发对应区域内存溢出的触发条件及表现结果.同时还对java对象的内存布局进行了简单的讲解. 2.2 运行时数据区域: 比较直观的一张图来表示: Java虚拟机运行 ...
- java技术指标_使用 Micrometer 记录 Java 应用性能指标
使用 Micrometer 记录 Java 应用性能指标 成 富 2019 年 2 月 13 日发布 运行良好的应用离不开对性能指标的收集.这些性能指标可以有效地对生产系统的各方面行为进行监控,帮助运 ...
- java 异常信息_优雅的异常处理 -- Java中的异常
处理异常自己处理 try-catch抛出让别人处理 throws 获得异常信息 直接打印异常对象 通过异常对象调用getMessage()方法获得 通过异常对象调用printStackTrace()方 ...
最新文章
- SIP中的SDP offer/answer交换初探
- 波卡链Substrate (7)Grandpa协议四“责任安全机制”
- idea 编译显示source1.3不支持泛型(请使用source5或更高版本)
- Jeecg引领企业开发潮流,开启插件开发时代,微信企业号插件(jeecg-p3-biz-qywx)首次发布
- 天池-街景字符编码识别5-模型训练与验证
- python 生成pdf页面大小_使用具有自定义大小页面和最佳图像分辨率的Reportlab生成PDF...
- 肥水不流外人田!Model X被选为SpaceX首次载人发射任务专用车
- 审计计算机考试报名,审计业务考试计算机(5页)-原创力文档
- SQL 错误代码汇总
- H5 新特性之 fileReader 实现本地图片视频资源的预览
- 配置LACP模式链路聚合
- 相亲交友小程序,案例:情深深之恋
- Java读取文件夹下的文件并进行处理
- 对立志成为DBA的人的几点建议
- C语言——整型整除,浮点数整除
- linux malloc错误,如何规避GCC中“尝试使用中毒的malloc / calloc”错误?
- 如何在 JavaScript 中获取当前日期?
- office出现应用程序错误无法正常启动(0xc0000142)
- 在一个数组中找到几个数之和为某个数字
- 如何查看yum 安装的软件路径(不要再忘了)