springboot 写入文件的日志如何输出异常栈

2020-05-13 09:37:05 +08:00
 Kontinue

springboot 配置的日志默认好像只能打印自己手动输出的日志到文件,一旦系统需要错误抛出的例如 NullPointerException 这些都是无法输出到日志的,但是在控制台能看到,估计用的是标准输出流。

网上给出的方案是:

try {
    // 各种业务
    throw new NullPointerException();
} catch (Exception e) {
	log.error("exception occur...", e);
}

但是直接在所有的 service 方法加 try catch 这样也不太好吧,有没有什么好的方法去输出这些框架和语言本身抛出的异常呢?

2334 次点击
所在节点    程序员
7 条回复
sheeta
2020-05-13 09:40:05 +08:00
全局异常捕获,然后 if (e instanceof NullPointerException)
luckylo
2020-05-13 09:40:55 +08:00
service 层处理请考虑 AOP 。或者直接往上抛,利用 controller Advice 处理
sufan1206
2020-05-13 09:45:03 +08:00
全局异常处理+日志
Umenezumi
2020-05-13 09:47:03 +08:00
全局异常处理就可以了。手动太麻烦了
Kontinue
2020-05-13 09:55:12 +08:00
可以可以,本来就有全局异常处理的,sb 了,直接加一行 log.error 就好了,感谢
starsli
2020-05-13 10:38:16 +08:00
@ControllerAdvice
全局捕获异常,用 @ExceptionHandler 根据不同类型异常做对应的处理。
JRay
2020-05-13 12:05:37 +08:00
全局异常

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/671149

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX