在 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 中设置基本记录器的最简单方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章