Java 日志记录未处理异常

Java 日志记录未处理异常,java,spring,logging,exception-handling,slf4j,Java,Spring,Logging,Exception Handling,Slf4j,编写应用程序,我使用slf4j作为记录器。以下是我的配置: <code> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration PUBLIC "-//LOGGER" "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender

编写应用程序,我使用slf4j作为记录器。以下是我的配置:

<code>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//LOGGER" "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%p] %d %c %M - %m%n" />
        </layout>
    </appender>

    <appender name="exceptionAppender" class="org.apache.log4j.DailyRollingFileAppender">
       <param name="File" value="${catalina.home}/logs/exception.log" />
       <param name="DatePattern" value="'.'yyyy-MM-dd" />
       <layout class="org.apache.log4j.PatternLayout">
          <param name="ConversionPattern" value="[%p] %d %c %M - %m%n"/>          
       </layout>
    </appender>

    <!-- 3rdparty Loggers -->
    <logger name="org.springframework.core">
        <level value="error" />
    </logger>

    <logger name="org.springframework.beans">
        <level value="error" />
    </logger>

    <logger name="org.springframework.context">
        <level value="error" />
    </logger>

    <logger name="org.springframework.web">
        <level value="error" />
    </logger>


    <logger name="com.myPackage" additivity="false">
        <level value="error" />
        <appender-ref ref="exceptionAppender" />
    </logger>
    <!-- Root Logger -->
    <root>
        <priority value="error" />
        <appender-ref ref="exceptionAppender" />
    </root>

</log4j:configuration>
</code>

当我想记录异常时,我需要使用try-and-catch,但我遇到了意外异常的问题。 你能帮我找到解决办法吗 如何在我的java代码中记录未处理的异常

谢谢你的回答:)

如何在java代码中记录未处理的异常

在设计时,我更喜欢捕获top base控制器中的所有异常,但是当应用程序的设计完成时,这种方法可能会花费大量的工作,因此面向方面的方法会更有效率


我看到您的问题用Spring标记,在这样的框架中,有一些方法可以实现您所需要的,您可以使用
@ExceptionHandler
@ControllerAdvice

这与slf4j完全无关。你有什么样的申请?什么是未处理的异常?有什么原因不能捕获并记录Throwable吗?@geo和catching
Throwable
捕获
Error
s和
RuntimeException
s--不要这样做……你是对的,但我只是想了解一下这里面发生了什么case@SotiriosDelimanolis我认为OP想知道是否有一种方法可以记录未使用默认记录器或其他方法捕获的异常——考虑到未捕获的异常会进入stderr,我相信OP希望在某种程度上捕获stderr输出并将其重定向到某个地方