FileNotFoundError: [Errno 2] Никакая такая ошибка файла или каталога не возникает случайно при записи журналов в DatabriPython

Программы на Python
Anonymous
FileNotFoundError: [Errno 2] Никакая такая ошибка файла или каталога не возникает случайно при записи журналов в Databri

Сообщение Anonymous »

Я создал средство ведения журнала, которое записывает файл журнала в папку проекта Databricks:

Код: Выделить всё

def configure_logger(logger, logfile, level=logging.DEBUG):
"""
Configures a logger with both file and stream handlers.

Parameters:
- logger (logging.Logger): The logger to configure.
- logfile (str): The path to the logfile.
- level (int, optional): The logging level. Defaults to logging.DEBUG.

Returns:
- tuple: A tuple containing the configured logger and the file handler.
"""
logger.setLevel(level)

# Create a file handler with detailed formatting for log output
file_handler = logging.FileHandler(logfile, mode="w")
fformatter = logging.Formatter('%(name)s - %(levelname)s: %(message)s')
file_handler.setFormatter(fformatter)
logger.addHandler(file_handler)

# Create a stream handler with simple formatting for cell output
stream_handler = logging.StreamHandler()
sformatter = logging.Formatter('%(levelname)s: %(message)s')
stream_handler.setFormatter(sformatter)
logger.addHandler(stream_handler)

# Remove random Pyspark logs
logging.getLogger("py4j").setLevel(logging.ERROR)
logging.getLogger("Comm").setLevel(logging.ERROR)

return logger, file_handler

# Set up root logger
logger = logging.getLogger()
logfile = '/Workspace/Project/Logs/dev/dev_20SEP2024.log'  # example

# Ensure the directory exists
log_dir = os.path.dirname(logfile)
if not os.path.exists(log_dir):
os.makedirs(log_dir)

logger, file_handler = configure_logger(logger, logfile=logfile)
В большинстве случаев код работает, но время от времени возникает следующая ошибка:

Код: Выделить всё

FileNotFoundError: [Errno 2] No such file or directory: '/Workspace/Project/Logs/dev/dev_20SEP2024.log'
File , line 10
7 if not os.path.exists(log_dir):
8     os.makedirs(log_dir)
---> 10 logger, file_handler = configure_logger(logger, logfile=logfile)
Но папка закрывается.

Код: Выделить всё

%sh
ls '/Workspace/Project/Logs/dev'
# returns dev_16SEP2024.log
Несмотря на то, что папка существует и в ней есть журналы предыдущих дней. После перезагрузки ноутбука и небольшого ожидания он вроде снова работает или случайно перезагружается. Не уверен, в чем может быть проблема, но похоже, что-то в Databricks или библиотеке журналирования. Кто-нибудь имел с этим дело? Что бы это ни было, мне нужно выяснить, почему оно это делает, поскольку другие могут столкнуться с этой проблемой.

Подробнее здесь: https://stackoverflow.com/questions/790 ... andomly-wh

Вернуться в «Python»