RAG_AIEXP / logger /my_logging.py
Pimnk's picture
Upload 9 files
13d0427 verified
import logging
import sys
import os
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler("aiexp.log"),
logging.StreamHandler(sys.stdout)
])
logger = logging.getLogger(__name__)
def log_message(message):
logger.info(message)
print(message, flush=True)
sys.stdout.flush()
CHUNKS_LOG_FILE = "all_chunks_debug.log"
def init_chunks_log():
"""
Создает (или перезаписывает) файл лога чанков.
Вызывать один раз при старте/перезапуске системы.
"""
try:
with open(CHUNKS_LOG_FILE, 'w', encoding='utf-8') as f:
f.write("=== РЕЕСТР ВСЕХ ЧАНКОВ (ОЧИЩЕНО ПРИ ЗАПУСКЕ) ===\n")
log_message(f"Файл лога чанков очищен: {CHUNKS_LOG_FILE}")
except Exception as e:
log_message(f"Ошибка создания лога чанков: {e}")
def log_full_chunk_to_file(doc, index, total):
"""
Записывает полное содержимое чанка в отдельный файл.
"""
try:
doc_id = doc.metadata.get('document_id', 'UNKNOWN')
doc_type = doc.metadata.get('type', 'text')
# Формируем заголовок для чанка
header = f"\n{'='*20} CHUNK #{index+1}/{total} [{'TABLE' if doc_type=='table' else 'TEXT'}] {'='*20}\n"
meta_info = f"DOC ID: {doc_id}\nMETADATA: {doc.metadata}\n"
content_sep = f"{'-'*20} CONTENT START {'-'*20}\n"
footer = f"\n{'-'*20} CONTENT END {'-'*20}\n"
with open(CHUNKS_LOG_FILE, 'a', encoding='utf-8') as f:
f.write(header)
f.write(meta_info)
f.write(content_sep)
f.write(doc.text) # Самое важное - полный текст
f.write(footer)
except Exception as e:
# Не ломаем приложение, если лог не записался
print(f"Ошибка записи чанка в лог: {e}")