Compare commits

...

10 Commits

Author SHA1 Message Date
Bently
81c1fcbd68 Merge branch 'dev' into autofix/truncate-logging-data 2025-04-26 08:33:03 +01:00
Toran Bruce Richards
760839ac69 Merge branch 'dev' into autofix/truncate-logging-data 2025-04-25 11:34:48 +01:00
Bently
b8b1e5a94b Merge branch 'dev' into autofix/truncate-logging-data 2025-04-25 08:16:40 +01:00
Toran Bruce Richards
d609be5eba Merge branch 'dev' into autofix/truncate-logging-data 2025-04-16 23:34:16 +01:00
Toran Bruce Richards
071418304e Merge branch 'dev' into autofix/truncate-logging-data 2025-04-16 19:41:48 +01:00
Nicholas Tindle
a08ca2af1c fix: formatting 2025-04-10 18:11:07 -05:00
Nicholas Tindle
74f91c6563 Merge branch 'dev' into autofix/truncate-logging-data 2025-04-10 18:06:35 -05:00
Nicholas Tindle
73f7e49922 Merge branch 'dev' into autofix/truncate-logging-data 2025-04-10 09:55:46 -05:00
Nicholas Tindle
744e21f729 Merge branch 'dev' into autofix/truncate-logging-data 2025-04-09 21:22:53 -05:00
sentry-autofix[bot]
5e8d61b120 fix: truncate large data in logging and switch info logs to debug 2025-04-09 14:55:00 +00:00

View File

@@ -104,23 +104,43 @@ class LogMetadata:
def info(self, msg: str, **extra):
msg = self._wrap(msg, **extra)
logger.info(msg, extra={"json_fields": {**self.metadata, **extra}})
truncated_extra = self._truncate_large_data(extra)
truncated_metadata = self._truncate_large_data(self.metadata)
logger.info(
msg, extra={"json_fields": {**truncated_metadata, **truncated_extra}}
)
def warning(self, msg: str, **extra):
msg = self._wrap(msg, **extra)
logger.warning(msg, extra={"json_fields": {**self.metadata, **extra}})
truncated_extra = self._truncate_large_data(extra)
truncated_metadata = self._truncate_large_data(self.metadata)
logger.warning(
msg, extra={"json_fields": {**truncated_metadata, **truncated_extra}}
)
def error(self, msg: str, **extra):
msg = self._wrap(msg, **extra)
logger.error(msg, extra={"json_fields": {**self.metadata, **extra}})
truncated_extra = self._truncate_large_data(extra)
truncated_metadata = self._truncate_large_data(self.metadata)
logger.error(
msg, extra={"json_fields": {**truncated_metadata, **truncated_extra}}
)
def debug(self, msg: str, **extra):
msg = self._wrap(msg, **extra)
logger.debug(msg, extra={"json_fields": {**self.metadata, **extra}})
truncated_extra = self._truncate_large_data(extra)
truncated_metadata = self._truncate_large_data(self.metadata)
logger.debug(
msg, extra={"json_fields": {**truncated_metadata, **truncated_extra}}
)
def exception(self, msg: str, **extra):
msg = self._wrap(msg, **extra)
logger.exception(msg, extra={"json_fields": {**self.metadata, **extra}})
truncated_extra = self._truncate_large_data(extra)
truncated_metadata = self._truncate_large_data(self.metadata)
logger.exception(
msg, extra={"json_fields": {**truncated_metadata, **truncated_extra}}
)
def _wrap(self, msg: str, **extra):
extra_msg = str(extra or "")
@@ -128,6 +148,15 @@ class LogMetadata:
extra_msg = extra_msg[:1000] + "..."
return f"{self.prefix} {msg} {extra_msg}"
def _truncate_large_data(self, data, max_size=10000):
if isinstance(data, dict):
return {k: self._truncate_large_data(v, max_size) for k, v in data.items()}
elif isinstance(data, list):
return [self._truncate_large_data(v, max_size) for v in data[:100]]
elif isinstance(data, str) and len(data) > max_size:
return data[:max_size] + "... [truncated]"
return data
T = TypeVar("T")
ExecutionStream = Generator[NodeExecutionEntry, None, None]