如何同时正确地从多个python线程写入日志文件?

如何同时正确地从多个python线程写入日志文件?,python,python-3.x,logging,Python,Python 3.x,Logging,我有一个多线程运行,其中每个线程将写入相同的日志文件。我怎么能这样做 我目前的解决方案是open(“log.txt”,“a”)。write(“something\n”),但我不知道太多打开的连接是否最终会失败或导致混乱的输出,例如 something sosomethingmething 或类似的。有更好的方法吗?对于日志记录,您可以使用日志记录模块。日志模块是线程安全的,将为您处理锁定 您甚至可以将%(threadName)s添加到logging.Logger格式中,这样您就可以知道是哪个

我有一个多线程运行,其中每个线程将写入相同的日志文件。我怎么能这样做

我目前的解决方案是
open(“log.txt”,“a”)。write(“something\n”)
,但我不知道太多打开的连接是否最终会失败或导致混乱的输出,例如

something
sosomethingmething

或类似的。有更好的方法吗?

对于日志记录,您可以使用日志记录模块。日志模块是线程安全的,将为您处理锁定

您甚至可以将
%(threadName)s
添加到
logging.Logger
格式中,这样您就可以知道是哪个线程将给定的行写入了日志文件。MWE folows:

import logging
logger = logging.getLogger()
formatter = logging.Formatter('%(asctime)s - %(threadName)s - %(name)s - %(levelname)s - %(message)s')
stderrHandler = logging.StreamHandler() # Will output to STDERR.
stderrHandler.setFormatter(formatter)
不要使用自己的日志代码。使用
日志记录
模块。