Python 中的日志记录模块如何管理保存文件
How the logging module in Python manages saving files
我正在使用 Python logging
模块将我的应用程序中发生的事情记录在文件上和终端中。
我的代码是:
import logging
logging.basicConfig(level=logging.DEBUG, handlers=[ # stream=sys.stdout,
logging.FileHandler("debug.log", 'a'),
logging.StreamHandler()
], format='%(asctime)s %(levelname)s %(message)s', )
logging.info("This is a LOG INFO message")
现在,程序一运行,它就会将日志保存在文件中。
我想知道 logging
方法如何将此信息保存到文件中。它是否 打开 -> 写入 -> 关闭 文件每次调用 logging
行?在程序结束之前保持文件打开吗?
我问是因为如果我的软件由于某些原因崩溃或 PC 重启,已经写入的日志文件是安全的还是可能已损坏?
顾名思义,您在这里设置的处理程序,将它们的日志消息流到指定的接收器。 Logging Handler Documentation 声明它:
"[...] sends logging output to streams such as sys.stdout, sys.stderr or any file-like object (or, more precisely, any object which supports write() and flush() methods)."
查看 Source Code and considering this GitHub Gist 因为如果您真的愿意,您显然可以将日志记录实例与上下文管理器一起使用,我假设您的直觉是完全正确的(关于打开 > 写入 > 关闭) .
我正在使用 Python logging
模块将我的应用程序中发生的事情记录在文件上和终端中。
我的代码是:
import logging
logging.basicConfig(level=logging.DEBUG, handlers=[ # stream=sys.stdout,
logging.FileHandler("debug.log", 'a'),
logging.StreamHandler()
], format='%(asctime)s %(levelname)s %(message)s', )
logging.info("This is a LOG INFO message")
现在,程序一运行,它就会将日志保存在文件中。
我想知道 logging
方法如何将此信息保存到文件中。它是否 打开 -> 写入 -> 关闭 文件每次调用 logging
行?在程序结束之前保持文件打开吗?
我问是因为如果我的软件由于某些原因崩溃或 PC 重启,已经写入的日志文件是安全的还是可能已损坏?
顾名思义,您在这里设置的处理程序,将它们的日志消息流到指定的接收器。 Logging Handler Documentation 声明它:
"[...] sends logging output to streams such as sys.stdout, sys.stderr or any file-like object (or, more precisely, any object which supports write() and flush() methods)."
查看 Source Code and considering this GitHub Gist 因为如果您真的愿意,您显然可以将日志记录实例与上下文管理器一起使用,我假设您的直觉是完全正确的(关于打开 > 写入 > 关闭) .