| 1 | #!/usr/bin/env python3
|
| 2 | """
|
| 3 | TARS Mission Logger
|
| 4 | A simple utility to log mission outputs with timestamps.
|
| 5 | """
|
| 6 |
|
| 7 | import json
|
| 8 | import sys
|
| 9 | from datetime import datetime
|
| 10 | from pathlib import Path
|
| 11 |
|
| 12 | class MissionLogger:
|
| 13 | def __init__(self, mission_name: str):
|
| 14 | self.mission_name = mission_name
|
| 15 | self.log_file = Path(f"missions/{mission_name}.json")
|
| 16 | self.log_file.parent.mkdir(exist_ok=True)
|
| 17 | self.entries = []
|
| 18 |
|
| 19 | def log(self, action: str, result: str):
|
| 20 | entry = {
|
| 21 | "timestamp": datetime.now().isoformat(),
|
| 22 | "action": action,
|
| 23 | "result": result
|
| 24 | }
|
| 25 | self.entries.append(entry)
|
| 26 |
|
| 27 | def save(self):
|
| 28 | with open(self.log_file, 'w') as f:
|
| 29 | json.dump(self.entries, f, indent=2)
|
| 30 | return f"Mission log saved to {self.log_file}"
|
| 31 |
|
| 32 | if __name__ == "__main__":
|
| 33 | logger = MissionLogger(sys.argv[1] if len(sys.argv) > 1 else "default")
|
| 34 | logger.log("init", "Mission started")
|
| 35 | print(logger.save())
|
| 36 |
|