【问题标题】:Problem with Logging Module in Google ColabGoogle Colab 中的日志记录模块问题
【发布时间】:2019-02-08 17:25:58
【问题描述】:

我有一个使用日志模块进行错误处理的 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 ..")

令我沮丧的是,它甚至没有创建一个名为 log_file_test.log 的日志文件。我尝试在本地运行相同的脚本,它确实生成了一个文件log_file_test.log,其中包含以下文本

13:20:53,441 root INFO 这是测试日志..

我在这里缺少什么? 目前,我正在用打印语句替换错误日志,但我认为必须有一个解决方法。

【问题讨论】:

    标签: python logging error-handling jupyter-notebook google-colaboratory


    【解决方案1】:

    也许您已经以某种方式重新配置了您的环境? (尝试运行时菜单 -> 重置所有运行时...)您的 sn-ps 工作方式与为我编写的完全一样 --

    【讨论】:

      【解决方案2】:

      logging.basicConfig 只能运行一次*

      随后对basicConfig 的任何调用都会被忽略。

      * 除非您使用的是 Python 3.8 并使用标志 force=True

      logging.basicConfig(filename='app.log',
                          level=logging.DEBUG,
                          force=True, # Resets any previous configuration
                          )
      

      解决方法 (2)

      (1)您可以使用此命令轻松重置 Colab 工作区

      exit
      

      等待它返回并再次尝试您的命令。

      (2) 但是,如果您计划进行多次重置和/或正在学习使用logging,也许最好使用%%python magic 在子进程中运行整个单元格。见下图。


      我在这里缺少什么?

      更深入地了解logging 的工作原理。这有点棘手,但是有很多很好的网站可以解释这些问题。

      【讨论】:

        猜你喜欢
        • 2015-08-08
        • 1970-01-01
        • 1970-01-01
        • 2011-05-19
        • 1970-01-01
        • 1970-01-01
        • 2011-11-28
        • 2019-06-06
        • 2017-06-04
        相关资源
        最近更新 更多