在Akka actor中的静态上下文中使用记录器

时间:2018-06-05 13:02:52

标签: java logging static akka event-log

我正在使用Akka建议的事件记录来记录演员:

public class MyActor extends AbstractActor {
  private final LoggingAdapter logger = Logging.getLogger(getContext().getSystem(), this);

  @Override
  public Receive createReceive() {
    // do stuff here
      logger.log("Did Stuff here");

    }).matchAny(unhandled -> unhandled(unhandled)).build();
  }

  public static helperMethodForActorTodoItsJob() {
    // Can't log here because of the static context?
  }
} 

我理解为什么建议在actor中使用事件记录,但是如何登录静态方法?我应该创建另一个记录器吗?它如何影响性能?或者我应该在演员中没有静态方法吗?这里的最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

通常,您可以做的是通过LoggingAdapter方法(即如果您选择扩展log())将AbstractLoggingActor传递给你的类方法的参数。如果这是你想要做的事情取决于你为什么希望它首先是静态的和/或方法的作用。