in client/log/log.py [0:0]
def emit(self, record: logging.LogRecord, age: Optional[float] = None) -> None:
suffix = ""
color: Optional[str] = None
message = record.msg
active_lines = message.count("\n") + 1
truncate = Format.TRUNCATE_OVERFLOW
if record.levelname in self.LINE_BREAKING_LEVELS:
message += "\n"
if record.levelname == "ERROR":
color = "red"
self._record = None
active_lines = 0
truncate = Format.WRAP_OVERFLOW
elif record.levelname == "WARNING":
color = "yellow"
self._record = None
active_lines = 0
truncate = Format.WRAP_OVERFLOW
elif record.levelname == "PROMPT":
color = "yellow"
self._record = None
active_lines = 0
truncate = Format.WRAP_OVERFLOW
elif record.levelname == "SUCCESS":
self._record = None
active_lines = 0
truncate = Format.WRAP_OVERFLOW
elif age:
if age > 10:
color = "yellow"
if age > 30:
color = "red"
suffix = click.style(f" [{age:.1f}s]", fg=color)
else:
self._record = record
self._last_update = time.time()
prompt = click.style(f"{Character.LAMBDA}", fg=color)
new_message = f"{self.clear_lines()}{prompt} {truncate}{message}{suffix}"
timed_record = copy.copy(record)
timed_record.msg = (
f"{click.unstyle(new_message)}\n"
# pyre-ignore[16]: Missing typeshed stub for this API
if click.utils.should_strip_ansi(stream=sys.stderr)
else new_message
)
self._active_lines = active_lines
super(TimedStreamHandler, self).emit(timed_record)