0

我的 Python 程序中有两个类,其中一个是线程。让两个类打开同一个日志文件并写入它是一个坏主意吗?

有没有什么好的方法可以为同时运行的两个类写入同一个日志文件?

4

3 回答 3

2

这是一个经典的并发问题。您需要确保您完全控制正在发生的事情。关于日志文件,最简单的解决方案可能是让一个队列从不同的地方(来自不同的线程甚至进程)收集日志消息,然后让一个实体从该队列中弹出消息并将它们写入日志文件。这样,至少单个消息保持自包含。

如果您从不同的未同步实体写入文件,操作系统不会防止消息混淆。因此,如果您没有明确控制应该按什么顺序发生,您最终可能会在该文件中收到损坏的消息,即使事情似乎大部分时间都有效。

于 2013-07-15T16:57:34.847 回答
1

使用 python日志记录模块。它为您处理血淋淋的细节。

于 2013-07-15T17:44:16.000 回答
0

只要您控制哪个类正在从文件中读取和写入,并确保一次只有一个类可以写入文件,您应该没问题,并且每次切换时都重新读取文件。

研究使用lock以确保两个类不会同时访问文件。

于 2013-07-15T16:55:39.800 回答