Afs*_*ati 2 python error-handling logging jupyter-notebook google-colaboratory
我有一个使用日志模块进行错误处理的 python 脚本。尽管此 python 脚本在导入到 google colab 时有效,但它不会在日志文件中记录错误。
作为一项实验,我在 google colab 中尝试了以下脚本,只是为了查看它是否完全写入日志
import logging
logging.basicConfig(filename="log_file_test.log",
filemode='a',
format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s',
datefmt='%H:%M:%S',
level=logging.DEBUG)
logging.info("This is a test log ..")
Run Code Online (Sandbox Code Playgroud)
令我沮丧的是,它甚至没有创建名为log_file_test.log的日志文件。我尝试在本地运行相同的脚本,它确实生成了一个文件log_file_test.log,其中包含以下文本
13:20:53,441 root INFO 这是一个测试日志..
我在这里缺少什么?目前,我正在用打印语句替换错误日志,但我认为必须有一个解决方法。
Rub*_*Rub 11
logging.basicConfig只能运行一次*
任何后续调用都basicConfig将被忽略。
*除非你使用Python 3.8并使用标志force=True
logging.basicConfig(filename='app.log',
level=logging.DEBUG,
force=True, # Resets any previous configuration
)
Run Code Online (Sandbox Code Playgroud)
解决方法 (2)
(1)您可以使用此命令轻松重置 Colab 工作区
exit
Run Code Online (Sandbox Code Playgroud)
等待它返回并再次尝试您的命令。
(2)但是,如果您计划多次重置和/或正在学习使用logging,也许最好使用%%pythonmagic在子进程中运行整个单元。参见下面的照片。
我在这里缺少什么?
更深入地了解如何logging运作。这有点棘手,但是有很多很好的网站解释了其中的陷阱。