Spaces:
Runtime error
Runtime error
File size: 1,483 Bytes
ed0b977 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | import logging
import json
import os
from datetime import datetime
# --- JSON Logging Setup ---
class JsonFormatter(logging.Formatter):
def format(self, record):
log_record = {
"timestamp": datetime.fromtimestamp(record.created).isoformat(),
"level": record.levelname,
"message": record.getMessage()
}
# If the message is a dict, merge it into the log record
if isinstance(record.msg, dict):
log_record.update(record.msg)
# Remove the original message field to avoid redundancy if it's just the dict string representation
if "message" in log_record and log_record["message"] == str(record.msg):
del log_record["message"]
return json.dumps(log_record)
def setup_logger():
# Create log directory
log_dir = os.path.join('logs', 'user_interaction')
os.makedirs(log_dir, exist_ok=True)
log_file_path = os.path.join(log_dir, 'events.jsonl')
log_handler = logging.FileHandler(log_file_path)
log_handler.setFormatter(JsonFormatter())
logger = logging.getLogger('action_logger')
logger.addHandler(log_handler)
logger.setLevel(logging.INFO)
# Prevent adding multiple handlers if setup is called multiple times
if logger.hasHandlers():
logger.handlers.clear()
logger.addHandler(log_handler)
return logger
# Create a singleton logger instance
logger = setup_logger()
|