Я хочу импортировать функцию logger logger_main (имя) из файла Logger.py в другой файл в том же каталоге / GeneralScripts.Каталог помечен как источник в PyCharm, а файл init .py также добавлен в /GeneralScripts.
Поэтому я импортирую его из GeneralScripts.Logger import logger_main
Логгер выглядит так:
def logger_main(name):
for handler in logging.root.handlers[:]:
logging.root.removeHandler(handler)
logger = logging.basicConfig(filename='{}.log'.format(name),
level=logging.INFO,
format='%(asctime)s,%(msecs)d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s',
datefmt='%Y-%m-%d:%H:%M:%S')
return logger
И файл, в который я импортирую, выглядит так:
# import modules
import os
import pyodbc
from sqlalchemy import create_engine
import urllib
import json
from GeneralScripts.Logger import logger_main
import logging
# credentials
with open('cred_db', 'r') as file:
cred_db = json.load(file)
# set the logger
logging = logger_main('DB')
def connect_to_db():
"""Connects to the database Controlling_Marketing.
:return: engine instance
"""
try:
params = urllib.parse.quote_plus('DRIVER={driver};SERVER={server};DATABASE={database};UID={uid};PWD={pwd};Port={port};'.format(**cred_db))
engine = create_engine('mssql+pyodbc:///?odbc_connect={}'.format(params))
logging.info('Connected to the DB Controlling_Marketing')
return engine
except Exception as e:
logging.error("Exception occurred, check def connect_to_db", exc_info=True)
# run it
engine = connect_to_db()
Когда я запускаю его, возникают исключения
logging.info('Connected to the DB Controlling_Marketing')
AttributeError: 'NoneType' object has no attribute 'info'
logging.error("Exception occurred, check def connect_to_db", exc_info=True)
AttributeError: 'NoneType' object has no attribute 'error'
Я проверил импорт других функций, все работало нормально, проблема только с регистратором.Понятия не имею, почему