Akka 在 Actor 之外进行日志记录

2024-01-23

我有一个 Akka Actor 打电话给MyObject.foo(). MyObject不是演员。如何设置登录?使用 Actor 就很简单,因为我可以混合 Actor Logging。在 MyObject 中,我无权访问 context.system。我是否创建一个akka.event.Logging使用 AkkaSystem() ,那么 LogSource 隐式又如何呢?


实际上我会将 Akka 日志重定向到slf4j /questions/tagged/slf4j并在所有不相关的类中直接使用此API。首先将其添加到您的配置中:

akka {
    event-handlers = ["akka.event.slf4j.Slf4jEventHandler"]
    loglevel = "DEBUG"
}

然后选择一些SLF4J实现,我建议logback /questions/tagged/logback。在你的演员中继续使用ActorLogging特征。在其他类中只需依赖 SLF4J API - 甚至更好 - 尝试一下slf4s https://github.com/weiglewilczek/slf4sSLF4J 周围的立面。

提示:在 Logback 中尝试以下日志记录模式:

<pattern>%d{HH:mm:ss.SSS} | %-5level | %thread | %X{akkaSource} | %logger{1} | %m%n%rEx</pattern>

The %X{akkaSource}将在可用时打印参与者路径(就像标准日志记录一样)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Akka 在 Actor 之外进行日志记录 的相关文章

随机推荐