当前位置: 代码网 > it编程>编程语言>Java > springboot日志没有记录异常问题及解决

springboot日志没有记录异常问题及解决

2025年02月19日 Java 我要评论
springboot 日志没有记录异常背景springboot项目,放到服务器上跑,定时任务运行过程中中断,查看日志却发现没有报错。在本地跑,发现控制台能打印报错信息,而日志也没有记录报错。经排查,发

springboot 日志没有记录异常

背景

springboot项目,放到服务器上跑,定时任务运行过程中中断,查看日志却发现没有报错。

在本地跑,发现控制台能打印报错信息,而日志也没有记录报错。

经排查,发现是因为报错出现在线程池中,没有在日志中记录。

原先使用线程池:

executorservice executorservice = executors.newfixedthreadpool(15);

解决

新建类继承threadpoolexecutor,重写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<>());

日志中就有异常信息了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com