Logging 为什么logRequest不记录请求?

Logging 为什么logRequest不记录请求?,logging,spray,Logging,Spray,根据,Spray允许用户记录请求和响应 然而,由于某些原因,我似乎无法让它工作 以下是我在“路由方面”的内容 以下是我的配置: 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 conne

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

然而,由于某些原因,我似乎无法让它工作

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

以下是我的配置:

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。

可能您的
logRequest
从未到达,因为您的
pathPrefix
从未匹配。请注意,pathPrefix需要一个斜杠,然后是它的参数(本例中为“会话”)。因此,如果URI路径的不匹配部分不是
/session
,那么它将不匹配,请求也不会被记录。不,路径是匹配的。我通过curl对它进行了测试,得到了“通过”响应您的
logback.xml如何?也许你正在过滤那里的日志?
logRequest
的默认日志级别是DEBUG。介意显示日志程序配置以补充答案吗?更改调用的日志级别使其对我起作用
logRequest("session reached", akka.event.Logging.InfoLevel)