V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Kontinue
V2EX  ›  程序员

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

  •  
  •   Kontinue · 2020-05-13 09:37:05 +08:00 · 2325 次点击
    这是一个创建于 1640 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    网上给出的方案是:

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

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

    sheeta
        1
    sheeta  
       2020-05-13 09:40:05 +08:00
    全局异常捕获,然后 if (e instanceof NullPointerException)
    luckylo
        2
    luckylo  
       2020-05-13 09:40:55 +08:00 via Android
    service 层处理请考虑 AOP 。或者直接往上抛,利用 controller Advice 处理
    sufan1206
        3
    sufan1206  
       2020-05-13 09:45:03 +08:00 via iPhone
    全局异常处理+日志
    Umenezumi
        4
    Umenezumi  
       2020-05-13 09:47:03 +08:00
    全局异常处理就可以了。手动太麻烦了
    Kontinue
        5
    Kontinue  
    OP
       2020-05-13 09:55:12 +08:00
    可以可以,本来就有全局异常处理的,sb 了,直接加一行 log.error 就好了,感谢
    starsli
        6
    starsli  
       2020-05-13 10:38:16 +08:00
    @ControllerAdvice
    全局捕获异常,用 @ExceptionHandler 根据不同类型异常做对应的处理。
    JRay
        7
    JRay  
       2020-05-13 12:05:37 +08:00
    全局异常
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   993 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 22:10 · PVG 06:10 · LAX 14:10 · JFK 17:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.