Как настроить Akka.NET на регистрацию всех сообщений, полученных акторами?

Я пытаюсь заставить Akka.NET регистрировать все сообщения, полученные акторами, но не могу заставить это работать. Вот моя конфигурация (я использую проекты из учебного лагеря Akka.NET):

      akka {                
        stdout-loglevel = DEBUG
        loglevel = DEBUG
        log-config-on-start = on

        actor {
          debug {
            receive = on # log any received message
            autoreceive= on # log automatically received messages, e.g. PoisonPill
            lifecycle = on # log actor lifecycle changes
            event-stream = on # log subscription changes for Akka.NET event stream
            unhandled = on # log unhandled messages sent to actors
          }
        }
      }

Я вижу, что конфигурация работает для других действий (я вижу отладочные сообщения об инициализации и выключении системы акторов), но ничего из фактических сообщений, отправленных акторам. Я пробовал примеры как на C #, так и на F #.


person Vagif Abilov    schedule 12.01.2016    source источник


Ответы (1)


Нашел то, что мне не хватало. Недостаточно настроить ведение журнала отладки, субъект должен реализовать интерфейс маркера (без методов) ILogReceive:

class ConsoleWriterActor : UntypedActor, ILogReceive
person Vagif Abilov    schedule 12.01.2016
comment
Вы правы. Мне показалось странным дизайнерское решение. - person mwardm; 30.03.2017
comment
@mwardm согласен! особенно когда я хочу увидеть полученные сообщения, спросив актеров - person appenthused; 30.06.2018
comment
Есть идеи, как заставить его работать с акторами F #, порожденными функцией spawn? - person Vasily Kirichenko; 14.09.2018