python-3.x - 如何启动一次Python日志记录实例

标签 python-3.x logging

我有一个包含多个脚本 .py 的 python 3 项目。

main.pyscript1.pyscript2.pyscript3.py logger.pymain.py 包含 3 个脚本/模块。

我创建了一个从日志记录模块继承的记录器类。目前,在每个 .py 模块中,我必须实例化记录器类并单独设置 loglevel/loggername/log 路径。

有没有办法在 main.py 中设置日志记录级别/记录器名称(或不需要)/日志路径,以便可以在该项目中传递相同的级别,而无需在每个脚本中单独设置它们?

最佳答案

当然有办法。不仅如此,它还是最佳实践方式

Python 日志记录按记录器名称分层,因此名为“abc.def”的日志被视为名为“abc”的记录器的子记录。所有记录器都有一个名为“root”记录器的祖先。

因此,如果您想要(通常需要)集中式日志配置,您应该配置根记录器 logging.getLogger()

如果您愿意,您可以使用 logging.basicConfig 辅助函数轻松完成此操作。

然后您的所有其他记录器都将采用此配置。

如果您想要对某些日志进行特定配置,您可以有选择地配置它们,或者使用名称层次结构通过“家庭根”进行配置。

编辑:对于多个日志配置,您还可以拥有一个集中的 logging.conf 文件,如解释的 here .

关于python-3.x - 如何启动一次Python日志记录实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58768282/

相关文章:

python - 在 Python 中记录到单独的文件

python - 我如何使用 selenium 和 python 来单击这种类型的子菜单链接

python - 尝试使用 "pyinstaller <scriptname.py>"并得到 "TypeError: an integer is required (got type bytes)"

c# - 当 .Net Thread 没有名称时,如何使用 NLog 打印 threadid 而不是 threadname?

java log4j 选择记录到哪个文件

logging - 扭曲的日志级别开关

python-3.x - Pyvista 曲面图?

python - 当查询具有动态生成/可变长度参数列表时防止 SQL 注入(inject)

c - syslog.h中的 "0-big number"是什么意思?

logging - 关闭日志记录 F# 的优雅方式