Spaces:
Sleeping
Sleeping
File size: 1,302 Bytes
06671aa | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | 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
|