40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
import json
|
||
import os
|
||
|
||
def log_error(url, error, filename='Err.json'):
|
||
"""
|
||
Добавляет ошибку в список ошибок в JSON-файле.
|
||
|
||
Args:
|
||
url (str): URL, на котором произошла ошибка.
|
||
error (str or Exception): Описание ошибки.
|
||
filename (str): Имя файла для логирования (по умолчанию 'Err.json').
|
||
"""
|
||
# Приводим error к строке, чтобы избежать проблем с сериализацией
|
||
error_str = str(error)
|
||
|
||
# Загружаем существующие ошибки (если файл существует)
|
||
if os.path.exists(filename):
|
||
try:
|
||
with open(filename, 'r', encoding='utf-8') as f:
|
||
errors = json.load(f)
|
||
except (json.JSONDecodeError, OSError):
|
||
errors = []
|
||
else:
|
||
errors = []
|
||
|
||
# Добавляем новую ошибку
|
||
errors.append({
|
||
"url": url.strip(),
|
||
"error": error_str
|
||
})
|
||
|
||
# Сохраняем обратно
|
||
with open(filename, 'w', encoding='utf-8') as f:
|
||
json.dump(errors, f, ensure_ascii=False, indent=4)
|
||
|
||
|
||
|
||
|
||
|