Как отправить имя вызывающего класса в класс регистратора в Python> - PullRequest
0 голосов
/ 17 июня 2020

Я новичок в Python и пытаюсь внедрить регистратор в свой код. Я создал файл python: setup_logger.py

import logging

CLASS_NAME = ''

# Create and configure logger
LOG_FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
logging.basicConfig(filename='/Users/bobby/Desktop/lumberjack.log', level=logging.DEBUG, format=LOG_FORMAT)
logger = logging.getLogger()

Я использую эту конфигурацию регистратора в другом python файле: GetLogger.py, как показано ниже

from LoggerLevels.setup_logger import logger

if __name__ == '__main__':
    logger.error('This is a basic log error message')
    logger.info('This is a warning message')

Журнал печатается в файле как:

2020-06-17 14:54:47,161 - root - ERROR - This is a basic log error message
2020-06-17 14:54:47,161 - root - INFO - This is a warning message

Но я вижу, что имя класса печатается как root. Я так понимаю, это связано с настройкой в ​​файле setup_logger.py. Есть ли способ отправить текущее имя класса, который регистрирует сообщения в моем файле? Например: я использую объект регистратора из файла GetLogger.py. Есть ли способ записать сообщение как

2020-06-17 14:54:47,161 - GetLogger - ERROR - This is a basic log error message
2020-06-17 14:54:47,161 - GetLogger - INFO - This is a warning message

Может ли кто-нибудь сообщить мне, как я могу этого добиться?

1 Ответ

1 голос
/ 17 июня 2020

Используйте:

LOG_FORMAT = '%(asctime)s - %(module)s - %(levelname)s - %(message)s'

Если это не сработает для вас, вы можете попробовать %(filename)s или создать собственный класс с помощью метода setLoggerClass .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...