logging - 为什么 logRequest 不记录请求?

标签 logging spray

根据documentation , Spray 允许用户记录请求和响应。

但是,由于某些原因,我似乎无法让它工作。

这是我在“路由方面”的内容

def generateRoute = pathPrefix("session") {
 logRequest("session reached") {
  path("new") {
    logRequest("session new reached") {
      post { entity(as[Initiate]) { sessionInfo =>
        logRequest("session new post reached") {
            complete("pass\n")
          }
        }
 /// the rest of the braces

这是我的配置:

akka {
  loglevel = DEBUG
  loggers = ["akka.event.slf4j.Slf4jLogger"]
}

这是我在日志中看到的内容:

app 11/29 13:02:35 DEBUG[sys-tracker-akka.actor.default-dispatcher-4] a.i.TcpListener - New connection accepted
app 11/29 13:02:36 DEBUG[sys-tracker-akka.actor.default-dispatcher-4] s.c.s.HttpServerConnection - Dispatching POST request to http://localhost:8080/session/new to handler Actor[akka://sys-tracker/system/IO-TCP/selectors/$a/1#2086889080]
app 11/29 13:02:36 DEBUG[sys-tracker-akka.actor.default-dispatcher-6] s.c.s.HttpServerConnection - Connection was PeerClosed, awaiting TcpConnection termination...
app 11/29 13:02:36 DEBUG[sys-tracker-akka.actor.default-dispatcher-4] s.c.s.HttpServerConnection - TcpConnection terminated, stopping

因此,即使我的路由中有 logRequest 指令,请求也不会被记录。有什么想法吗?

最佳答案

我已经构建了一个示例解决方案,其中包含喷射路由以及您的路由功能和配置。我确实看到了与您的 logRequest 方法相对应的日志语句。输出包括传递给 logRequest 和 HttpRequest 的文本。

01:42:36.946 [SprayRoutingExample-akka.actor.default-dispatcher-2] DEBUG akka.actor.ActorSystemImpl - session new post reached: HttpRequest(POST,http://localhost:8080/session/new,List(Accept-Language: en-US, en, Accept-Encoding: gzip, deflate, Accept: */*, Content-Type: text/plain, Origin: chrome-extension://hgmloofddffdnphfgcellkdfbfbjeloo, User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36, Content-Length: 4, Connection: keep-alive, Host: localhost:8080),HttpEntity(text/plain,test),HTTP/1.1)

尝试更改您的调用的日志级别,看看是否有任何不同

logRequest("session reached", akka.event.Logging.InfoLevel)

您使用什么作为具体的记录器实现。检查您的记录器配置是否正确。我使用了 logback。

关于logging - 为什么 logRequest 不记录请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27205304/

相关文章:

scala - Parboiled2 导致 "missing or invalid dependency detected while loading class file ' Prepender.class'"

scala - 喷雾中的拦截器/过滤器

c++ - 控制台/文件记录器库 C++

java - 在 tomcat/shared/lib 中获取 jar 以使用调用它们的 webapp 的配置进行记录

java - jhipster 应用程序中 application-prod.yml 和 application-dev.yml 之间的区别

scala - 带有可变参数的案例类的隐式 jsonFormat

scala - 在哪里放置用于 scala Spray 应用程序的 favicon(即站点的根目录是什么?)?

c++ - 多线程进程中同步写入日志

java - Windows 上的 "catalina.out"在哪里?

json - 无法使用spray-json解码json HttpEntity