springboot日志沒(méi)有記錄異常問(wèn)題及解決
springboot 日志沒(méi)有記錄異常
背景
springboot項(xiàng)目,放到服務(wù)器上跑,定時(shí)任務(wù)運(yùn)行過(guò)程中中斷,查看日志卻發(fā)現(xiàn)沒(méi)有報(bào)錯(cuò)。
在本地跑,發(fā)現(xiàn)控制臺(tái)能打印報(bào)錯(cuò)信息,而日志也沒(méi)有記錄報(bào)錯(cuò)。
經(jīng)排查,發(fā)現(xiàn)是因?yàn)閳?bào)錯(cuò)出現(xiàn)在線(xiàn)程池中,沒(méi)有在日志中記錄。
原先使用線(xiàn)程池:
ExecutorService executorService = Executors.newFixedThreadPool(15);
解決
新建類(lèi)繼承ThreadPoolExecutor
,重寫(xiě)afterExecute
方法。
@Slf4j public class TaskExecutor extends ThreadPoolExecutor { public TaskExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue) { super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue); } @Override protected void afterExecute(Runnable r, Throwable t) { super.afterExecute(r, t); if (t != null) { log.error(t.getMessage(), t); } } }
使用:
ExecutorService executorService = new TaskExecutor(10, 15, 0L, TimeUnit.SECONDS, new LinkedBlockingQueue<>());
日志中就有異常信息了。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring?Validation實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)的示例
Spring?Validation其實(shí)就是對(duì)Hibernate?Validator進(jìn)一步的封裝,方便在Spring中使用,這篇文章主要介紹了Spring?Validation實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)的示例,需要的朋友可以參考下2023-03-03解析spring-security權(quán)限控制和校驗(yàn)的問(wèn)題
這篇文章主要介紹了解析spring-security權(quán)限控制和校驗(yàn)的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03零基礎(chǔ)寫(xiě)Java知乎爬蟲(chóng)之進(jìn)階篇
前面幾篇文章,我們都是簡(jiǎn)單的實(shí)現(xiàn)了java爬蟲(chóng)抓取內(nèi)容的問(wèn)題,那么如果遇到復(fù)雜情況,我們還能繼續(xù)那么做嗎?答案當(dāng)然是否定的,之前的僅僅是入門(mén)篇,都是些基礎(chǔ)知識(shí),給大家練手用的,本文我們就來(lái)點(diǎn)高大上的東西2014-11-11Java純代碼實(shí)現(xiàn)導(dǎo)出PDF功能
在項(xiàng)目開(kāi)發(fā)中,產(chǎn)品的需求越來(lái)越奇葩啦,開(kāi)始文件下載都是下載為excel的,做著做著需求竟然變了,要求能導(dǎo)出pdf,本文就來(lái)和大家分享一下Java實(shí)現(xiàn)導(dǎo)出PDF的常用方法吧2023-07-07@Valid 校驗(yàn)無(wú)效,BindingResult未獲得錯(cuò)誤的解決
這篇文章主要介紹了@Valid 校驗(yàn)無(wú)效,BindingResult未獲得錯(cuò)誤的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10