python3 .X Проблема с ведением журнала RotatingFileHandler при закрытии соединений - PullRequest
0 голосов
/ 06 мая 2020

Я написал сценарий, в котором я читаю данные из снежинки и обновляю их в кеше. После выполнения скрипта снежинка пытается автоматически закрыть все оставшиеся соединения, в то время как соединения закрываются. Библиотека регистрирует несколько деталей, из-за которых я получаю следующую проблему.

--- Logging error ---
Traceback (most recent call last):
  File "/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7/logging/handlers.py", line 69, in emit
    if self.shouldRollover(record):
  File "/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7/logging/handlers.py", line 183, in shouldRollover
    self.stream = self._open()
  File "/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7/logging/__init__.py", line 1116, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
NameError: name 'open' is not defined
Call stack:
  File "~/.virtualenvs/test-ven/lib/python3.7/site-packages/snowflake/connector/connection.py", line 211, in __del__
    self.close(retry=False)
  File "~/.virtualenvs/test-ven/lib/python3.7/site-packages/snowflake/connector/connection.py", line 529, in close
    logger.info('closed')
Message: 'closed'
Arguments: ()

Я попытался удалить RotatingFileHandler, затем нет проблем, все выполняется плавно, я пробовал с версиями python 3.5, 3.7, ошибка возникает в обеих версиях. Ниже представлена ​​моя конфигурация ведения журнала, что я мог делать не так.

    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format': '%(asctime)s %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s'
        }
    },
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
            'level': 'INFO',
            'formatter': 'verbose'
        },
        'cron_file': {
            'class': 'logging.handlers.RotatingFileHandler',
            'level': 'INFO',
            'formatter': 'verbose',
            'filename': '/var/log/my-project/crons.log',
            'mode': 'a',
            'maxBytes': 5242880,
            'backupCount': 10
        },
        'error_file': {
            'class': 'logging.handlers.RotatingFileHandler',
            'level': 'WARN',
            'formatter': 'verbose',
            'filename': '/var/log/my-project/error.log',
            'mode': 'a',
            'maxBytes': 5242880,
            'backupCount': 10
        }
    },
    'loggers': {
        # root logger
        '': {
            'handlers': ['console', 'cron_file', 'error_file'],
            'level': 'DEBUG',
        },
        'crons': {
            'handlers': ['console', 'cron_file', 'error_file'],
            'level': 'DEBUG',
        }
    }
}
...