Skip to content

Commit fdd5189

Browse files
thuliorai200890
authored andcommitted
feat: Format exceptions and tracebacks (#4)
1 parent cd35a20 commit fdd5189

1 file changed

Lines changed: 18 additions & 1 deletion

File tree

google_cloud_logger/__init__.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
from datetime import datetime
21
import inspect
2+
import traceback
3+
from datetime import datetime
4+
from io import StringIO
35

46
from pythonjsonlogger.jsonlogger import JsonFormatter
57

@@ -57,7 +59,22 @@ def format_severity(self, level_name):
5759
}
5860
return levels[level_name.upper()]
5961

62+
def make_exception(self, record):
63+
with StringIO() as buf:
64+
exception_info = record.exc_info
65+
traceback.print_tb(exception_info[2], file=buf)
66+
return {
67+
"class": record.exc_info[0],
68+
"message": record.exc_info[1],
69+
"traceback": buf.getvalue(),
70+
}
71+
6072
def make_metadata(self, record):
73+
if record.exc_info:
74+
return {
75+
"userLabels": self.make_user_labels(record),
76+
"exception": self.make_exception(record),
77+
}
6178
return {"userLabels": self.make_user_labels(record)}
6279

6380
def make_source_location(self, record):

0 commit comments

Comments
 (0)