Почему мой журнал Python не заполняется, несмотря на то, что остальные функции работают правильно? - PullRequest
1 голос
/ 29 апреля 2019

Я использую операторы try-кроме, которые используют ведение журнала, но, хотя файл журнала создается, журналы не создаются.

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

Мне сказали «Импорт -> Функции -> Выполнить функции» + «У функций должна быть попытка, кроме ведения журнала, а не наоборот».

Я изменил свой код для этого вопроса, чтобы изолировать проблему: в этом коде у нас есть скрипт, который открывает json. Работает скрипт, открывающий JSON. Регистрация - единственная проблема.

Где я иду не так?

При перестановке кода скрипт все еще выполняется, за исключением части регистрации.

import logging

LOG_FORMAT = "%(levelname)s %(asctime)s - %(message)s"
logging.basicConfig(filename='C:\\Users\\MWSF\\Documents\\log_test.log',
                   level=logging.INFO,
                   format=LOG_FORMAT)
logger = logging.getLogger()

def get_filepath():
    '''Find the file path, which is partly defined by the file name.'''
    try:
        return "C:\\Users\\MWSF\\Documents\\filename.json"
    except Exception:
        logger.error("Error occured while determining current JSON file path.")
    else:
        logger.info("Successfully determined current JSON file path.")

path = get_filepath()

Ожидаемый результат: функция, которая открывает указанный файл и журнал с именем log_test.log, который содержит эту информацию:

INFO 2019-04-26 14:52:02,260 - Imported current JSON file.

Фактический результат: функция, которая открывает указанный файл и журнал с именем log_test.log, который содержит эту информацию:


1 Ответ

1 голос
/ 29 апреля 2019

Поместите возврат в предложение "else", а не в "try".Это вызывает выход из функции, а не ведение журнала.

def get_filepath():
    '''Find the file path, which is partly defined by the file name.'''
    try:
        #return "C:\\Users\\MWSF\\Documents\\filename.json"
        path = "C:\\Users\\MWSF\\Documents\\filename.json"
    except Exception:
        logger.error("Error occured while determining current JSON file path.")
    else:
        logger.info("Successfully determined current JSON file path.")
        return path

Пример log_test.log:

INFO 2019-04-29 12: 58: 53,329 - Успешно определен текущий путь к файлу JSON.

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