Я получаю дублирующиеся (двойные) журналы при использовании регистрации в python.У меня есть 3 файла:
1. main.py
2. dependencies.py
3. resources.py
Я делаю только 1 вызов конструктора Python Logger, который выполняется внутри main.py
Ниже приведены мои операторы импорта в 3 файлах
main.py
import xml.etree.ElementTree as et
from configparser import ConfigParser
from Craftlogger import Craftlogger
logger = Craftlogger().getLogger()
dependencies.py
import os,sys
from main import getJobDetails,postRequest,logger
from configparser import ConfigParser
resources.py
import os,sys
import xml.etree.ElementTree as et
И внутри метода main в main.py, У меня есть импорт
def main():
from resources import getResourceDetails,setResources
from dependencies import setDependencies
..... Remaining code .....
Мой файл журнала выглядит следующим образом
import logging
class Craftlogger:
def __init__(self):
self.logger = logging.getLogger(__name__)
handler = logging.StreamHandler()
formatter_string = '%(asctime)s | %(levelname)-8s | %(filename)s-%(funcName)s-%(lineno)04d | %(message)s'
formatter = logging.Formatter(formatter_string)
handler.setFormatter(formatter)
self.logger.addHandler(handler)
self.logger.setLevel(logging.DEBUG)
self.logger.propagate = False
def getLogger(self):
return self.logger
Примечание. Мне пришлось выполнить импорт внутри main, чтобы иметь возможность выполнять циклический импорт.