我正在使用美妙的AnyEvent创建异步TCP服务器(特别是MUD服务器)。

为了使所有组件平稳运行并尽可能减少阻塞/同步代码段,我已将一些正在使用的模块替换为它们的异步对应模块,例如AnyEvent::MemcachedAnyEvent::Gearman。这样可以使主程序非常快速,这是合乎需要的。我已经编码了其中一些同步调用的需求。

我当前遇到的一个问题(也是该问题的重点)是日志记录。

在为此服务器程序使用AnyEvent之前,我使用了Log::Log4perl,因为它可以使我微调应记录哪些模块或子例程,在哪个级别以及向哪个日志输出(屏幕,文件等)。

这里的问题是Log4perl操作(警告,信息等)当前是同步执行的,但是我没有要求,只要日志行最终以正确的顺序出现在屏幕/文件上即可。

使用异步事件处理程序(例如AnyEvent)时,Log::Log4perl是否仍然是正确的选择,还是应该查看其他模块?如果是这样,推荐哪个?

最佳答案

AnyEvent随附的AnyEvent::Log使用AnyEvent::IO,当IO::AIO可用时,它将异步地添加到文件中(否则,则同步地添加到文件中)。

关于perl - 在Perl的AnyEvent下使用哪个日志记录模块?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4554852/

10-11 11:14