我是这个花哨的语言scala的新手,我正在尝试创建一个用于记录scala actor的库。我的库有一个Logger类,它扩展了Actor类。 因此,任何使用actor模型的Scala应用程序都可以从此类扩展,或者使用Actor类来扩展日志记录功能。 例如。 class MyClass扩展了Logger。 在我的Logger类中,我实现了这样的逻辑:每当有人向某个actor发送消息时,它就会被发送actor的日志文件记录下来。 为此,每当有人向另一个actor发送消息而不是调用scala send函数时,比如
caller ! msg
库的用户调用
send(caller,msg)
然后,库函数将在日志中为此消息创建一个条目。这很好用。 我希望为actor收到的消息添加类似的功能。也就是说,每当actor接收到消息时,库应该在日志文件中为所接收的消息创建条目。一种方法是每当用户收到一个方法时,他就可以显式地调用这样的日志方法,
while (true) {
receive {
case msg =>
log(sender, msg)
// do some stuff
}
}
日志功能在日志中生成一个条目。 我希望用户不需要编写此行日志(sender,msg),以便库对用户透明,并且没有用户需要编写的添加代码,并且Logger类会隐式记录所有内容。 有没有办法实现这个目标? 提前谢谢。
答案 0 :(得分:0)
覆盖方法receive
,以便它调用log(sender, msg)
然后调用super.receive()
。