2009-07-22 6 views
11

Milletler, Linux için syslog() 'ın yeniden giriş sürümünü bulamıyorum ... var mı? Ve hayırsa, sen ne yapıyorsun? Belirgin yanıt, günlük kaydı hizmetini ayrı iş parçacığına ve syslog'a serileştirme erişimine taşımaktır ...syslog_r?

+0

Syslog çağrıları bir semafor/muteks ile korunmuyor mu? Yapmak istediğiniz şeyleri ayrıntılandırabiliyorsanız ve kendinizin önerdiğiniz çözümün neden kabul edilemez olduğunu düşünürsek, insanlar size daha iyi yardımcı olacaktır. –

cevap

17

POSIX specification'a göre, syslog işlevi zaten iş parçacığı güvenlidir ve Linux'ta uygulanır. Yani syslog_r gereksizdir - bir reentrant logger işlevine ihtiyacınız varsa syslog kullanın.

+5

BSD'ler bir syslog_r çağrısı tanımlar, ancak tamamen farklı bir sebepten dolayı; bireysel iş parçacıkları farklı syslog seçenekleriyle oturum açmak isteyebilir, bu da mümkün değildir. –

+0

Doğru - bu işlev Linux'ta mevcut değildir. –

+0

[bu sayfa] (http://pic.dhe.ibm.com/infocenter/aix/v6r1/index.jsp?topic=%2Fcom.ibm.aix.basetechref%2Fdoc%2Fbasetrf2%2Fsyslog.htm) şunu söylüyor iş parçacığı güvenli değil –