【问题标题】:How to log Filename and Linenumber in Akka Classic Actor?如何在 Akka Classic Actor 中记录文件名和行号?
【发布时间】:2021-01-29 00:07:40
【问题描述】:

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

但是如果我使用这个 logback sn-p

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

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

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

【问题讨论】:

    标签: scala logging akka logback akka-actor


    【解决方案1】:

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

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

    这是设计使然,对于 Akka 的内部日志记录没有解决办法。

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

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

    【讨论】:

      猜你喜欢
      • 2010-10-06
      • 2020-06-15
      • 2016-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-31
      相关资源
      最近更新 更多