|
import logging |
|
from datetime import datetime |
|
from pathlib import Path |
|
|
|
class AgentLogger: |
|
def __init__(self, log_dir="logs"): |
|
self.log_dir = Path(log_dir) |
|
self.log_dir.mkdir(exist_ok=True) |
|
self.logger = logging.getLogger("agent_logger") |
|
self.logger.setLevel(logging.DEBUG) |
|
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s") |
|
console_handler = logging.StreamHandler() |
|
console_handler.setLevel(logging.INFO) |
|
console_handler.setFormatter(formatter) |
|
file_handler = logging.FileHandler(self.log_dir / f"agents_{datetime.now().strftime('%Y%m%d')}.log") |
|
file_handler.setLevel(logging.DEBUG) |
|
file_handler.setFormatter(formatter) |
|
self.logger.addHandler(console_handler) |
|
self.logger.addHandler(file_handler) |
|
|
|
def log_workflow_step(self, agent_name, message): |
|
self.logger.info(f"{agent_name}: {message}") |
|
|
|
def log_agent_output(self, agent_name, output, method, duration): |
|
self.logger.debug(f"{agent_name} {method} output: {output} ({duration}s)") |
|
|
|
def log_inter_agent_pass(self, from_agent, to_agent, data_size): |
|
self.logger.info(f"π PASS: {from_agent} β {to_agent} | Size: {data_size}") |
|
|
|
agent_logger = AgentLogger() |