feat: Add logfile support to Analytics class

This commit is contained in:
Paul Gauthier (aider) 2024-08-12 18:26:08 -07:00
parent 85fa78f5a6
commit 82250db8af

View file

@ -1,6 +1,7 @@
import json import json
import platform import platform
import sys import sys
import time
import uuid import uuid
from pathlib import Path from pathlib import Path
@ -11,7 +12,8 @@ from aider.dump import dump # noqa: F401
class Analytics: class Analytics:
def __init__(self, track): def __init__(self, track, logfile=None):
self.logfile = logfile
if not track: if not track:
self.mp = None self.mp = None
return return
@ -43,7 +45,7 @@ class Analytics:
return new_uuid return new_uuid
def event(self, event_name, main_model=None, **kwargs): def event(self, event_name, main_model=None, **kwargs):
if not self.mp: if not self.mp and not self.logfile:
return return
properties = {} properties = {}
@ -65,4 +67,17 @@ class Analytics:
properties[key] = str(value) properties[key] = str(value)
properties["aider_version"] = __version__ properties["aider_version"] = __version__
self.mp.track(self.user_id, event_name, properties)
if self.mp:
self.mp.track(self.user_id, event_name, properties)
if self.logfile:
log_entry = {
"event": event_name,
"properties": properties,
"user_id": self.user_id,
"time": int(time.time())
}
with open(self.logfile, "a") as f:
json.dump(log_entry, f)
f.write("\n")