【问题标题】:import custom logging module throws error导入自定义日志记录模块引发错误
【发布时间】:2019-12-27 01:11:33
【问题描述】:

我测试了以下代码以了解导入自定义 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

请帮我弄清楚我错过了什么。

【问题讨论】:

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


    【解决方案1】:

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

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

    或显式导入记录器(就像在您的第一个带有产品功能的 sn-p 中所做的那样):

    from loggerforhousing import logger
    

    有帮助吗?

    【讨论】:

    • 它有效,我知道我的错误......都是因为深夜编码:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 2016-05-21
    相关资源
    最近更新 更多