| import json | |
| import datetime | |
| import os | |
| class Logger: | |
| def __init__(self, log_file="src/devcore/logs/build.log"): | |
| self.log_file = log_file | |
| os.makedirs(os.path.dirname(self.log_file), exist_ok=True) | |
| def log(self, level, source, message, context=None): | |
| entry = { | |
| "timestamp": datetime.datetime.now().isoformat(), | |
| "level": level, | |
| "source": source, | |
| "message": message, | |
| "context": context or {} | |
| } | |
| with open(self.log_file, "a") as f: | |
| f.write(json.dumps(entry) + "\n") | |
| def query_errors(self): | |
| """Retrieves only error-level logs for the agent to analyze.""" | |
| errors = [] | |
| if not os.path.exists(self.log_file): | |
| return errors | |
| with open(self.log_file, "r") as f: | |
| for line in f: | |
| entry = json.loads(line) | |
| if entry["level"] == "ERROR": | |
| errors.append(entry) | |
| return errors | |