当前位置: 首页 > 面试题库 >

如何使用日志记录Python模块写入文件?

徐洋
2023-03-14
问题内容

如何使用Python中的日志记录模块写入文件?每当我尝试使用它时,它只会打印出消息。


问题答案:

一个使用logging.basicConfig而不是一个例子logging.fileHandler()

logging.basicConfig(filename=logname,
                            filemode='a',
                            format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s',
                            datefmt='%H:%M:%S',
                            level=logging.DEBUG)

logging.info("Running Urban Planning")

self.logger = logging.getLogger('urbanGUI')

按顺序,这五个部分执行以下操作:

  1. 设置输出文件(filename=logname
  2. 将其设置为追加而不是覆盖(filemode='a'
  3. 确定输出消息的格式(format=...
  4. 确定输出时间的格式datefmt='%H:%M:%S'
  5. 并确定它将接受的最低消息级别(level=logging.DEBUG)。


 类似资料:
  • 我正在使用Python日志模块,并希望禁用由我导入的第三方模块打印的日志消息。例如,我使用的是如下所示: 当我执行logger.debug时,它会输出我的调试消息(“my Message!”),但它也会从我导入的任何模块中输出调试消息(如请求和许多其他东西)。 我只想看到我感兴趣的模块的日志消息。有没有可能让日志模块做到这一点?

  • 问题内容: 我想知道如何实现一个全局记录器,该记录器可以用自己的设置在任何地方使用: 我目前有一个自定义记录器类: 该类在一个单独的文件中,其中包含一些格式化程序和其他内容。记录器可以完美地独立运行。 我将此模块导入我的主python文件中,并创建一个像这样的对象: 但显然,我无法从代码的其他部分访问此对象。我使用错误的方法吗?有一个更好的方法吗? 问题答案: 使用创建一个名为全球记录。 main

  • 我创建了以下groovy脚本,以展示如何使用简单的注释将日志字段注入我们的类 当我运行groovy脚本时,我得到以下结果(在GROOVY CONSOLE上) 请告知我们如何将结果打印到WIN机器中的日志文件中,以及需要向groovy脚本中添加什么才能启用它? 例如: 日志文件 C: \程序文件\日志\我的。非常棒。日志 (应包含结果:)

  • 我可以创建一个命名的子记录器,以便该记录器输出的所有日志都用它的名称标记。我可以只在函数/类/任何东西中使用记录器。 但是,如果该代码调用了另一个模块中的函数,该模块仅使用日志模块函数(根记录器的代理)进行日志记录,我如何确保这些日志消息通过相同的记录器(或者至少以相同的方式记录)? 例如: main.py 其他.py 产出: 我希望能够使两个日志行都标记为名称'stuff',我希望能够做到这一点

  • 问题内容: 我正在使用python记录器。以下是我的代码: 我的问题是我在每个呼叫的日志文件中都有多个条目。我该如何解决? 问题答案: 该已经是一个单例。(文件) 问题在于,每次调用时,都会向实例添加另一个处理程序,这将导致日志重复。 也许像这样?

  • 我有一个小的python项目,它有如下结构-- 我计划使用默认日志模块将消息打印到stdout和一个日志文件。要使用日志模块,需要进行一些初始化- 目前,我在开始记录消息之前在每个模块中执行此初始化。是否有可能在一个地方只执行一次初始化,以便通过在整个项目中进行日志记录来重用相同的设置?