Python并发日志读取

时间:2014-09-11 12:35:11

标签: python locking multiprocessing

我一直在使用 ConcurrentLogHandler 进行多平台/多进程文件记录。

现在我想确定我正在阅读原子'部分日志,也就是我不想读取半个日志行。并发文件记录器实际上对文件执行 LOCK_EX (独占),是否有人在 ConcurrentLogHandler 上使用 LOCK_SH (共享)的做法文件?我无法在模块服务中看到这样的读取。

或者您是否有使用其他python模块进行多次读/单写的经历? (不用手动编码所有东西)

1 个答案:

答案 0 :(得分:1)

ConcurrentLogHandler只是使用操作系统提供的文件锁定工具(在Windows上为fcntl.flock,在Windows上为win32file.LockFileEx),因此如果您选择{{{{}},则不会出现任何问题1}}在文件上; LOCK_SH在尝试获取ConcurrentLogHandler时会尊重锁定。最简单的方法是使用LOCK_EX中包含的portalocker module

ConcurrentLogHandler