Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring logback:记录未捕获的异常_Spring_Logback - Fatal编程技术网

Spring logback:记录未捕获的异常

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

我想用log back捕获未捕获的异常,以涵盖以下情况:

@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
方法。您为我指明了正确的方向。现在阅读