导入自定义日志记录模块会引发错误

时间:2019-08-21 18:01:07

标签: python-3.x logging python-logging

我测试以下代码以了解导入自定义python程序的过程,并且工作正常,但是当按照相同的过程导入自定义日志记录模块时,我会看到错误。

以下工作正常

#calculation.py
from mult import product
def add(a,b):
    return a + b
if __name__== '__main__':
    a = 10
    b = 5
    print(add(a,b))
    print(product(a,b))

现在第二个程序mult.py

# mult.py
def product(a,b):
return a * b

下方不起作用,为什么?

#test_logger.py
import loggerforhousing
print("custom logs")
logger.info("this is info")
logger.error("this is error")

第二程序

#loggerforhousing.py
import logging    

logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s:%(levelname)s:%(name)s:%(message)s')
file_handler = logging.FileHandler('train_123.log') # store log files in artifacts directory
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)

错误消息

Traceback (most recent call last):
  File "test_logger.py", line 3, in <module>
    logger.info("this is info")
NameError: name 'logger' is not defined

请帮助我弄清楚我所缺少的东西。

1 个答案:

答案 0 :(得分:1)

test_logger.py 中,声明logger为 loggerforhousing.py 的一部分:

loggerforhousing.logger.info(“this is info”)

或显式导入记录器(如使用产品功能的第一个代码片段所示):

from loggerforhousing import logger

有帮助吗?