在 python 中设置基本记录器的最简单方法是啥?

Posted

技术标签:

【中文标题】在 python 中设置基本记录器的最简单方法是啥?【英文标题】:What is the simplest way to setup a basic logger in python?在 python 中设置基本记录器的最简单方法是什么? 【发布时间】:2018-04-12 11:36:54 【问题描述】:

理想情况下,为简单脚本设置日志记录应该只需要一行代码。不幸的是,大多数示例都有多达 10 行样板代码。有没有更简单的方法来获得基本的日志记录设置?

编辑:理想情况下,我想要时间戳,也许是日志级别,仅此而已。

【问题讨论】:

logging.basicConfig(filename=log_file, filemode='a', level=logging.DEBUG) 是一个简单的开始 【参考方案1】:

我认为设置记录器最简单的方法是使用the logging module。

【讨论】:

看基本的​​例子:这么多样板。然后人们想知道为什么人们使用 print() 代替。 我在this simple example看不到你所说的样板文件 我同意这个还不错。不幸的是,我认为默认值的选择不是很好。默认情况下让 logger.info 不打印任何内容是……很有趣。此外,默认格式字符串可能会更好一些。【参考方案2】:

Python 中有一个非常棒的模块,叫做logging。你可以在这里找到很多例子logging-cookbook。就我个人而言,我使用日志记录来登录文件,并能够在整个项目需要时在不同级别的详细程度之间切换。

【讨论】:

如前所述,对于像日志这样简单的事情,这些有很多样板。我正在寻找类似 basiclogging.getLogger() 之类的东西,最好是我可以存储在脑海中的东西。 那么使用打印,何必呢? 好吧,我想要时间戳。但是,随着脚本的成熟,能够转移到更精细的日志记录也是很好的。 那么日志所暗示的附加代码并不是那么高的价格【参考方案3】:

好的,我刚刚做了一个基本的日志配置模块:

import logging
from logging import info, warning, debug, error

logging.basicConfig(format="%(asctime)s [%(levelname)s] %(message)s", level=logging.INFO)

这并不多,但现在你可以:

import basic_logging as log
log.info("hello")

默认输出有用的信息。这很简单,但它使用了真正的记录器,这意味着您将来可以非常简单地切换到更复杂的记录。我什至可以将它发布到 Pypi。

【讨论】:

以上是关于在 python 中设置基本记录器的最简单方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中设置自定义 NavigationBar 的最简单方法是啥?

在javascript中设置默认参数值的最有效方法是啥?

在 Python 中设置配置文件的最佳方法是啥

验证有可用网络连接的最简单方法是啥?

在云服务器中运行 python 脚本的最简单方法是啥?

复制 activerecord 记录的最简单方法是啥?