1

我正在玩 spray.io,但我无法使喷雾调试指令 logRequestResponse 工作 - 我在日志中看不到任何输出。

 val route: Route = {
    pathPrefix("city") {
      pathPrefix("v1") {
        path("transaction" / Segment / Segment) {
          (siteId: String, transactionId: String) =>
            post {
              authenticate(BasicAuth(UserPasswordAuthenticator _, realm = "bd cinema import api")) {
                user =>
                   DebuggingDirectives.logRequestResponse("city-trans", Logging.InfoLevel) {                         
                     val resp = "Hello"
                     complete {
                       resp
                     }                    
                   }
              }
            }
            }
      }
    }
  }

我在这里错过了什么吗?我是否需要在喷雾配置的某个地方启用全局调试?我尝试了不同的地方,但没有一个按预期工作

4

1 回答 1

0

检查您的application.conflogback.xml中的值是否合理,作为 Spray 项目中的这些示例文件

注意 application.conf akka.loglevel= INFO

akka {
  log-config-on-start = on
  loglevel = "INFO"
  actor.timeoutsecs = 2
  loggers = ["akka.event.slf4j.Slf4jLogger"]
}

logback.xml显示日志的最低要求stdout

<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <target>System.out</target>
        <encoder>
            <pattern>[%d{dd/MM/yyyy HH:mm:ss.SSS}] [%level] [%thread] %logger{36} - %msg %n</pattern>
            <!--<pattern>%X{akkaTimestamp} %-5level[%thread] %logger{0} - %msg%n</pattern>-->
        </encoder>
    </appender>
    <!--   <logger name="com.vegatic" level="DEBUG"/> -->
    <root level="DEBUG">
        <appender-ref ref="CONSOLE"/>
    </root>
</configuration>

通常怀疑是loggername属性与 Scala 命名空间不匹配或不够详细,为清楚起见,已在上面的示例中进行了评论

LoggingContext的文档链接

始终可以隐式提供的 LoggingAdapter。如果是隐式 ActorSystem,则创建的 LoggingContext 将转发到系统的日志。如果隐式 ActorContext 在范围内,则创建的 LoggingContext 使用上下文的 ActorRef 作为日志源。否则,即如果ActorSystem 和ActorContext 都不是隐式可用的,则创建的LoggingContext 将转发到NoLogging,即“/dev/null”。

于 2015-07-28T15:44:34.703 回答