bardd's picture
Deploy Mike backend-only Space
06671aa verified
Raw History Blame Contribute Delete
1.3 kB
import logging
import datetime
import contextvars
current_trace_run = contextvars.ContextVar('current_trace_run', default=None)
class LangSmithHandler(logging.Handler):
def emit(self, record):
run = current_trace_run.get()
if run:
try:
run.add_event({
"name": "log",
"time": datetime.datetime.now(datetime.timezone.utc),
"kwargs": {
"level": record.levelname,
"message": self.format(record),
"logger_name": record.name,
"file": record.filename,
"line": record.lineno
}
})
except Exception:
pass
def setup_logger(name: str) -> logging.Logger:
logger = logging.getLogger(name)
if not logger.handlers:
logger.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - [%(name)s] %(message)s')
ch = logging.StreamHandler()
ch.setFormatter(formatter)
logger.addHandler(ch)
ls_handler = LangSmithHandler()
ls_handler.setFormatter(formatter)
logger.addHandler(ls_handler)
return logger