Spring logback:记录未捕获的异常
我想用log back捕获未捕获的异常,以涵盖以下情况:Spring logback:记录未捕获的异常,spring,logback,Spring,Logback,我想用log back捕获未捕获的异常,以涵盖以下情况: @Controller @RequestMapping("/dev") public class DevController { private static final Logger log = LoggerFactory.getLogger(DevController.class); @ResponseBody @RequestMapping(value = "/crash", method = Reque
@Controller
@RequestMapping("/dev")
public class DevController {
private static final Logger log = LoggerFactory.getLogger(DevController.class);
@ResponseBody
@RequestMapping(value = "/crash", method = RequestMethod.GET)
public String crash() {
int i = 1/0;
return "CRASH FINISHED " + i;
}
}
我当前的logback配置是:
<configuration debug="true">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} %-5level %logger{50}:%L - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>/tmp/startgate.log</file>
<append>true</append>
<encoder>
<pattern>%d{HH:mm:ss.SSS} %-5level %logger{50}:%L - %msg%n</pattern>
</encoder>
</appender>
<appender name="EMAIL" class="ch.qos.logback.classic.net.SMTPAppender">
<smtpHost>localhost</smtpHost>
<to>randomemail@randomdomain.com</to>
<from>randomemail@randomdomain.com</from>
<subject>LIVE ERROR: %logger{20} - %m</subject>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%date %-5level %logger{35} - %message%n</pattern>
</layout>
</appender>
<if condition='property("ENVIRONMENT").contains("DEVELOPMENT")'>
<then>
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</then>
</if>
<if condition='property("ENVIRONMENT").contains("PRODUCTION")'>
<then>
<root level="ERROR">
<appender-ref ref="EMAIL" />
</root>
</then>
</if>
</configuration>
DispatcherServlet
已经捕获了此类未捕获的异常,如果无法处理它们,则将其记录下来。例如,我如何捕获此类异常并通过电子邮件发送?特别是对于Spring MVC,对于来自处理程序方法的异常,请声明@ExceptionHandler
方法。您为我指明了正确的方向。现在阅读