如何使用Ruby和eventmachine登录?

时间:2010-11-11 15:52:16

标签: ruby logging eventmachine

我正在使用Ruby和Eventmachine库编写应用程序。我非常喜欢非阻塞I / O和事件驱动系统的想法,我遇到的问题是日志记录。我正在使用Ruby的标准记录器库。它不是永远记录日志,但似乎不应该阻止它,它确实。那里有一个库,它将Ruby的标准记录器实现扩展为非阻塞,或者我应该为我的日志调用调用EM :: defer吗?有没有办法让eventmachine为我做这件事呢?

2 个答案:

答案 0 :(得分:3)

我最终将记录器包装在一个启动线程且具有FIFO队列的单例类中。日志记录会将日志信息转储到队列中,并且线程只是循环,从队列中提取东西并使用真实记录器进行记录。不是反应堆模式,但它也不会咀嚼我的EM线程池。

使用这个单身人士,你只能拥有一个记录器,但这是我在github上所做的。

答案 1 :(得分:1)

如果您使用的是Syslog系统,可以查看EM-Syslog