Java 处理所有异常

Java 处理所有异常,java,logging,logback,Java,Logging,Logback,我使用logback记录java应用程序。如何使用logback 我的测试配置 <appender name="exceptions" class="ch.qos.logback.core.FileAppender"> <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> <evaluator> <expres

我使用
logback
记录java应用程序。如何使用
logback

我的测试配置

    <appender name="exceptions" class="ch.qos.logback.core.FileAppender">
        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
            <evaluator>
                <expression>java.lang.Exception.class.isInstance(throwable)</expression>
            </evaluator>
            <onMatch>ACCEPT</onMatch>
        </filter>
        <file>exceptions.log</file>
        <append>true</append>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n</pattern>
            <immediateFlush>false</immediateFlush>
        </encoder>
    </appender>

java.lang.Exception.class.isInstance(可丢弃)
接受
异常.log
真的
%d{HH:mm:ss.SSS}%-5级%logger{36}-%msg%n
假的

假设您的意思是捕获所有异常,即使是未捕获的异常:您可以在代码中尽早定义未捕获的异常处理程序:

private static void setDefaultUncaughtExceptionHandler() {
    try {
        Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
            @Override
            public void uncaughtException(Thread t, Throwable e) {
                LOGGER.error("Uncaught Exception detected in thread " + t, e);
            }
        });
    } catch (SecurityException e) {
        LOGGER.error("Could not set the Default Uncaught Exception Handler", e);
    }
}