【发布时间】:2020-09-28 17:23:14
【问题描述】:
我有一个 python 模块,我想设置一个记录器以通过包可用。
- 我在
__init__.py中启动记录器 - 用
python -m运行代码 - 在另一个文件中调用一个函数,该文件需要来自
__init__.py的记录器
那我就报这个错误
name 'logger' is not defined
__init__.py:
import logging
logging.basicConfig(format='%(msg)s')
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
from .code import log
log()
code.py:
def log():
logger.debug('test')
【问题讨论】:
-
您如何(如果有的话)尝试将记录器从
__init__.py获取到您使用它的位置?提供minimal reproducible example 而不是描述。 -
@jonrsharpe 谢谢我添加了示例。当我导入日志并且我在一个应该有全局变量的模块中时,我希望日志函数能够看到记录器。
-
“我在一个应该有全局变量的模块中” - 我不知道你为什么这么认为,这不是什么定义它在
__init__.py中。 -
哦,那么我应该如何使变量或函数可以通过模块访问?或者我必须在模块的每个文件中启动记录器?
标签: python logging module package