Logging Module的线程安全,网络上的线程安全吗?

时间:2017-12-07 18:53:43

标签: python multithreading logging

我们正在将来自多台计算机timestamps的{​​{1}}的日志转储到单个文件中,并且每个条目都少于4KB。 Python的日志记录模块显然处理500并保证lockinghttps://docs.python.org/2/library/logging.html#thread-safety

感谢@ user2357112的反馈意见,以下是更多信息:

  

您使用的是某种网络附加存储吗?

存储是一个网络磁盘,它共享一个可以读/写的可写Thread-Safety

  

计算机是否在本地记录事物并以某种方式同步其日志文件?

计算机没有在本地登录,但是他们已完成,他们正在使用“记录器”写入共享的logfile.txt的末尾

  

来自不同计算机的日志记录如何以同一文件结尾?

所有计算机都附加到logfile.txt

那么写入单个文件会出现什么问题?或者使用安全吗?

1 个答案:

答案 0 :(得分:1)

  

那么写入单个文件会出现什么问题?或者使用安全吗?

充其量,处理文件访问权限的驱动程序将把文件专门锁定到一个进程/用户。最糟糕的是,仅仅因为你的追加并不意味着它会是连续的。例如,你可能会以这样的方式结束排队。

也许更好/更安全的方法就像/myNas/logs/MMDDYYHH/workerPID.log之类的东西,然后让每日清洁脚本将所有这些合并到master.log文件中。在中间处理步骤中,您可以读取每个日志,将其放入:memory:sqlite数据库,按日期排序条目&时间,并将其转储到合并的master.log

或者,如果需要实时日志监控,我相信Windows具有类似watch的工具,可以在写入磁盘时跟踪每个文件。