0

我是这种花哨的语言 scala 的新手,我正在尝试创建一个用于记录 scala 演员的库。我的库有一个类 Logger,它扩展了 Actor 类。因此,任何使用 Actor 模型的 Scala 应用程序都可以从此类扩展,或者从 Actor 类扩展以添加日志记录功能。例如。MyClass 类扩展了 Logger。在我的 Logger 类中,我实现了这样的逻辑,即每当有人向某个参与者发送消息时,它都会被发送参与者的日志文件记录下来。为此,每当有人向另一个参与者发送消息而不是调用 scala 发送函数时,例如

caller ! msg

图书馆的用户调用

send(caller,msg)

然后,库函数将在日志中为此消息创建一个条目。这工作正常。我希望为演员收到的消息添加类似的功能。也就是说,每当参与者收到消息时,库都应该在日志文件中为收到的消息创建一个条目。这样做的一种方法是,每当用户收到一个方法时,他都可以显式调用这样的日志方法,

while (true) {
   receive {
     case msg =>
       log(sender, msg)
       // do some stuff
   }
}

日志函数在日志中创建一个条目。我希望用户不需要编写此行 log(sender, msg) 以便库对用户是透明的,并且没有用户需要编写的添加代码,并且所有内容都由 Logger 类隐式记录。有没有办法做到这一点?提前致谢。

4

1 回答 1

0

在 Logger 类中,重写该方法receive,以便它调用log(sender, msg)然后super.receive().

于 2012-11-11T08:41:26.883 回答