Akka 如何注销OfMemoryError';slf4j中的s

Akka 如何注销OfMemoryError';slf4j中的s,akka,slf4j,Akka,Slf4j,我正在akka系统中运行一个slf4j记录器。如果系统内存不足,我会在控制台中收到OutOfMemoryError。但是,这不会显示在日志文件中。这使得这些错误很难发现,因为我必须在它们从控制台顶部消失之前注意到它们。有没有办法让它们也显示在日志文件中 这就是错误: [error] (pool-21-thread-22) java.lang.OutOfMemoryError: Java heap space java.lang.OutOfMemoryError: Java heap space

我正在akka系统中运行一个
slf4j
记录器。如果系统内存不足,我会在控制台中收到
OutOfMemoryError
。但是,这不会显示在日志文件中。这使得这些错误很难发现,因为我必须在它们从控制台顶部消失之前注意到它们。有没有办法让它们也显示在日志文件中

这就是错误:

[error] (pool-21-thread-22) java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
        at java.util.Arrays.copyOf(Unknown Source)
        at java.lang.AbstractStringBuilder.expandCapacity(Unknown Source)
        at java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source)
         ....
这是我的
logback.xml
,我想我应该将它设置为在日志文件中提供与控制台完全相同的输出:

<configuration>

  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} %-5level [%X{akkaSource}] %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>log/akka.log</file>
    <append>false</append>
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} %-5level [%X{akkaSource}] [%thread] %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <logger name="slick" level="INFO">
  </logger>

  <logger name="myserver" level="DEBUG">
  </logger>

  <logger name="akka" level="DEBUG">
  </logger>

  <logger name="spray" level="DEBUG">
  </logger>

  <root level="DEBUG">
    <appender-ref ref="CONSOLE" />
    <appender-ref ref="FILE" />
  </root>

</configuration>

%d{HH:mm:ss.SSS}%-5级[%X{akkaSource}]%logger{36}-%msg%n
log/akka.log
假的
%d{HH:mm:ss.SSS}%-5级[%X{akkaSource}][%thread]%logger{36}-%msg%n

大多数其他错误同时出现在控制台和日志文件中,而不是
OutOfMemoryError
。谢谢。

使用Scalatra,我通过将
错误
添加到
MyServlet扩展ScalatraServlet
,获得了日志上显示的OOM:

error {
  case t: Throwable => {
    logger.error(s"Unexpected throwable: ${t.toString}", t)
    throw t
  }
}