0

我们使用 logback 作为 Akka 的日志记录后端,如下所述:https ://doc.akka.io/docs/akka/current/logging.html

但是如果我使用这个 logback 片段

<pattern>%d{HH:mm:ss.SSS} %-5level [%thread] [%logger] [%F:%L] [%mdc{akkaSource:-}] %msg [%mdc]%n</pattern>

我看到 ... [ Slf4jLogger.scala:83] ... 作为文件名和行号,这似乎是 akka 库中的一个类。

如何获取日志记录语句的真实位置?

4

1 回答 1

0

Patrik Nordwall 在这里回答了这个问题:https ://discuss.lightbend.com/t/akka-actor-logging-of-line-numbers/7345

“Akka 的内部日志记录是异步的,这意味着通过 akka.event.LoggingAdapter 发出的日志消息被发送到演员 Slf4jLogger。Slf4jLogger 演员将调用 slf4j.Logger 方法,因此线程和源行号来自 Slf4jLogger演员。

这是设计使然,Akka 的内部日志记录无法解决此问题。

对于您自己的日志记录,您不必使用 Akka 的 LoggingAdapter。您可以直接登录到您自己的 slf4j.Logger。

更多信息在https://doc.akka.io/docs/akka/current/logging.html#slf4j"

于 2020-10-17T06:46:10.077 回答