Добавление указанного c имени в регистратор - PullRequest
0 голосов
/ 06 мая 2020

Я настраиваю регистратор python, и у меня возникли проблемы с указанием c имени в зависимости от файла, который он вызывает регистратор.

Это то, что я хочу войти в файл: 2020-05-06 13:51:31,032 - myModule - WARNING - warn message

Вместо 2020-05-06 13:51:31,032 - sLogger - WARNING - warn message

Это то что у меня

import logging, logging.config

# set up logging
logging.config.fileConfig("config.ini")
logger = logging.getLogger('sLogger')

# log something
logger.debug('debug message')
logger.info('info message')
logger.warn('warn message')
logger.error('error message')
logger.critical('critical message')

И мой config.ini

[loggers]
keys=root,sLogger

[handlers]
keys=consoleHandler,fileHandler

[formatters]
keys=fileFormatter,consoleFormatter

[logger_root]
level=DEBUG
handlers=consoleHandler

[logger_sLogger]
level=DEBUG
handlers=consoleHandler,fileHandler
qualname=sLogger
propagate=0

[handler_consoleHandler]
class=StreamHandler
level=WARNING
formatter=consoleFormatter
args=(sys.stdout,)

[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=fileFormatter
args=('logfile.log',)

[formatter_fileFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=

[formatter_consoleFormatter]
format=%(levelname)s - %(message)s
datefmt=

Я видел код вроде logger = logging.getLogger(__name__), но таким образом он не вызывает slogger.

Как я могу получить и то, и другое?

1 Ответ

0 голосов
/ 07 мая 2020

Замените имя в формате на имя файла.

format=%(asctime)s - %(filename)s - %(levelname)s - %(message)s

Вы можете использовать любой из атрибутов объекта LogRecord , который python предоставляет в формате.

...