微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Akka Classic Actor中记录文件名和行号?

如何解决如何在Akka Classic Actor中记录文件名和行号?

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

但是,如果我使用此返回代码

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

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

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

解决方法

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"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。