在 Python 中,logging
模块是一个标准库,它提供了灵活且功能强大的日志记录工具。为了在自己的项目中,可以正常打印引入的其它依赖包的日志,正确的使用logging的方式是:
1. 配置 logging
在项目的入口处,例如主模块(最先执行的模块),配置 logging
。这通常在你的项目的初始化代码中完成,例如在 main
函数或在脚本的顶部。
import logging # 配置 logging,可以根据需要进行调整 logging.basicConfig(level=logging.INFO) # 也可以从配置文件中获取 # logging.config.fileConfig('conf/logging.conf')
2. 获取 Logger 对象
在引入包的模块中,通常会使用 logging.getLogger(__name__)
来获取 Logger 对象。
# 在其他包的模块中 import logging logger = logging.getLogger(__name__) def some_function(): logger.info('This is a log message from some_function')
3. 打印其他包中的日志
当你在你的项目中的某处调用了其他包中的函数时,该函数的日志将会使用你之前配置的 logging
配置。
# 在你的项目中的某处 from other_package import some_function some_function()
这样配置后,你的项目中将会捕获到其他包中模块的日志,并按照你的配置进行处理。
示例
假设你有一个项目结构如下:
luaCopy codeproject/ |-- main.py |-- other_package/ | |-- __init__.py | |-- some_module.py
在 main.py
中配置 logging:
# main.py import logging logging.basicConfig(level=logging.INFO) from other_package.some_module import some_function some_function()
在 other_package/some_module.py
中使用 Logger:
# other_package/some_module.py import logging logger = logging.getLogger(__name__) def some_function(): logger.info('This is a log message from some_function')
运行 main.py
,就能够在控制台看到类似以下的输出:
INFO:other_package.some_module:This is a log message from some_function
这说明你成功地配置了 logging
,并且能够捕获其他包中的日志。