我一直在使用 ConcurrentLogHandler 进行多平台/多进程文件记录。
现在我想确定我正在阅读原子'部分日志,也就是我不想读取半个日志行。并发文件记录器实际上对文件执行 LOCK_EX (独占),是否有人在 ConcurrentLogHandler 上使用 LOCK_SH (共享)的做法文件?我无法在模块服务中看到这样的读取。
或者您是否有使用其他python模块进行多次读/单写的经历? (不用手动编码所有东西)
答案 0 :(得分:1)
ConcurrentLogHandler
只是使用操作系统提供的文件锁定工具(在Windows上为fcntl.flock
,在Windows上为win32file.LockFileEx
),因此如果您选择{{{{}},则不会出现任何问题1}}在文件上; LOCK_SH
在尝试获取ConcurrentLogHandler
时会尊重锁定。最简单的方法是使用LOCK_EX
中包含的portalocker
module:
ConcurrentLogHandler