如何使用Ruby和eventmachine登录?

Jus*_*tin 6 ruby logging eventmachine

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

Jus*_*tin 3

我最终将记录器包装在一个启动线程并具有 FIFO 队列的单例类中。日志记录会将日志信息转储到队列中,线程只是循环,从队列中取出内容并使用真正的记录器来记录它。不是真正的反应器模式,但它也不会占用我的 EM 线程池。

对于这个单例,你只能拥有一个记录器,但这是我在github上所做的。