在使用 Logger 类进行日志管理的时候,多进程以及多线程运行情况下,创建多个日志类对同一个日志文件进行操作,是否是安全的? 如果是,那么是通过什么实现的呢?文件锁? 如果不是,哪有没有安全的日志类,或者通过自行增加 mutex 来解决吗? 在网上查了很多 Logger 相关的资料,但是没发现有用的,所以求助下各位,感谢!
在 Linux 一直是安全的,因为
对 log rotation, Ruby 2.1 之后是安全的,因为
logdev.flock(File::LOCK_EX)
信息来源:源代码和 http://b.hatena.ne.jp/entry/www.slideshare.net/sonots/rubylogger-rubyconf-20131109
#1 楼 @luikore 非常感谢