Python вход в несколько файлов - PullRequest
0 голосов
/ 15 апреля 2020

это код, который я сделал до сих пор:

    import logging, os , json, inspect, sys
from logging import handlers

class StructuredMessage(object):
    def __init__(self, **kwargs):
        self.kwargs = kwargs

    def __str__(self):
        return '%s' % (json.dumps(self.kwargs))

    def setup(self, file):        
        if(os.getenv('LOG_TO_FILE') == 'True'):
            logging.basicConfig(filename='logs/'+file, format='%(levelname)s %(asctime)s  %(message)s', filemode='a')             
        else:
            logging.basicConfig(filename='logs/'+file, format='%(levelname)s %(asctime)s %(message)s', filemode='a')

logger = logging.getLogger()

def info(msg):
    fun = StructuredMessage()
    fun.setup('info.log')
    logger.setLevel('INFO')
    frame = ''.join(str(inspect.currentframe().f_back.f_code.co_filename))
    lNo = ''.join(str(inspect.currentframe().f_back.f_code.co_firstlineno))
    logging.info(StructuredMessage(msg=msg, file=frame+':'+lNo))

def error(msg):
    fun = StructuredMessage()
    fun.setup('exception.log')
    logger.setLevel('ERROR')
    frame = ''.join(str(inspect.currentframe().f_back.f_code.co_filename))
    lNo = ''.join(str(inspect.currentframe().f_back.f_code.co_firstlineno))    
    logging.error(StructuredMessage(msg=msg, file=frame+':'+lNo))

То, чего я пытаюсь добиться, - это получить модуль, который при вызове функции информации (например) записывает сообщение в указанный файл в basicConfig.

Неправильно то, что когда я вызываю функцию ошибки, она записывает ошибку в файл info.log вместо файла exception.log, а файл info.log содержит оба сообщения.

Цель состоит в том, чтобы получить отдельные функции, информацию и ошибки, которые каждая из них записывает исключительно в указанный файл.

Что я делаю неправильно?

...