我需要在Flask服务器上编写一个方法,将请求的部分内容写入日志文件。但是,如果我理解正确的话,Flask是多线程的,并且写入文件可能不安全。
我承认,我对Python和多线程编程还比较新手,所以我需要有人能够帮助我一些 :)
我的代码目前为止(稍作修改,省略了那些会让我在网上发帖遇到麻烦的部分)
我猜我需要在开放和关闭语句周围包装一些代码,但我真的不知道是什么,我正在阅读“Python in a Nutshell”书中的“线程和进程”章节,但它并没有给我关于如何实际使用这些方法的很多想法。
任何帮助都将不胜感激。
我承认,我对Python和多线程编程还比较新手,所以我需要有人能够帮助我一些 :)
我的代码目前为止(稍作修改,省略了那些会让我在网上发帖遇到麻烦的部分)
@app.route('/store_test')
def store_test():
now = str(time.time())
ip_address = request.remote_addr
agent = request.user_agent.string
log_data = [now,ip_address,agent]
log_data_string = "\t".join(log_data)
filename = "log.dat"
f = open(filename,'a')
f.write(log_data_string + "\n")
f.close()
return 'OK'
我猜我需要在开放和关闭语句周围包装一些代码,但我真的不知道是什么,我正在阅读“Python in a Nutshell”书中的“线程和进程”章节,但它并没有给我关于如何实际使用这些方法的很多想法。
任何帮助都将不胜感激。
logging
在内部使用 Lock 对象。已添加文档链接。 - Thorsten Kranz