Подтвердить что ты не робот

Как использовать ведение журнала с помощью python fileConfig и настроить имя файла журнала

У меня есть файл конфигурации регистрации для входа в консоль и файл с различными форматами и уровнями. В моем python script я могу загрузить эту конфигурацию, и в основном консоль и выход файлов в порядке.

Я установил имя файла в файле конфигурации, как показано ниже.

Можно ли установить это имя файла в самом python script?

код python:

# set up logging
logging.config.fileConfig(loginipath)
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')

файл конфигурации ведения журнала:

[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=
4b9b3361

Ответ 1

Измените раздел handler_fileHandler следующим образом:

[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=fileFormatter
args=('%(logfilename)s',)

а затем добавьте аргумент defaults к вызову fileConfig

logging.fileConfig(loginipath, defaults={'logfilename': '/var/log/mylog.log'})

Ответ 2

Попробуйте позвонить logging.config.dictConfig() после fileConfig() и просто указать имя файла.