@@ -26,6 +26,7 @@ def test_logging_works_with_many_loggers(sentry_init, capture_events, logger):
26
26
assert event ["level" ] == "fatal"
27
27
assert not event ["logentry" ]["params" ]
28
28
assert event ["logentry" ]["message" ] == "LOL"
29
+ assert event ["logentry" ]["formatted" ] == "LOL"
29
30
assert any (crumb ["message" ] == "bread" for crumb in event ["breadcrumbs" ]["values" ])
30
31
31
32
@@ -112,6 +113,7 @@ def test_logging_level(sentry_init, capture_events):
112
113
(event ,) = events
113
114
assert event ["level" ] == "error"
114
115
assert event ["logentry" ]["message" ] == "hi"
116
+ assert event ["logentry" ]["formatted" ] == "hi"
115
117
116
118
del events [:]
117
119
@@ -152,6 +154,7 @@ def test_custom_log_level_names(sentry_init, capture_events):
152
154
assert events
153
155
assert events [0 ]["level" ] == sentry_level
154
156
assert events [0 ]["logentry" ]["message" ] == "Trying level %s"
157
+ assert events [0 ]["logentry" ]["formatted" ] == f"Trying level { logging_level } "
155
158
assert events [0 ]["logentry" ]["params" ] == [logging_level ]
156
159
157
160
del events [:]
@@ -177,6 +180,7 @@ def filter(self, record):
177
180
178
181
(event ,) = events
179
182
assert event ["logentry" ]["message" ] == "hi"
183
+ assert event ["logentry" ]["formatted" ] == "hi"
180
184
181
185
182
186
def test_logging_captured_warnings (sentry_init , capture_events , recwarn ):
@@ -198,10 +202,12 @@ def test_logging_captured_warnings(sentry_init, capture_events, recwarn):
198
202
assert events [0 ]["level" ] == "warning"
199
203
# Captured warnings start with the path where the warning was raised
200
204
assert "UserWarning: first" in events [0 ]["logentry" ]["message" ]
205
+ assert "UserWarning: first" in events [0 ]["logentry" ]["formatted" ]
201
206
assert events [0 ]["logentry" ]["params" ] == []
202
207
203
208
assert events [1 ]["level" ] == "warning"
204
209
assert "UserWarning: second" in events [1 ]["logentry" ]["message" ]
210
+ assert "UserWarning: second" in events [1 ]["logentry" ]["formatted" ]
205
211
assert events [1 ]["logentry" ]["params" ] == []
206
212
207
213
# Using recwarn suppresses the "third" warning in the test output
@@ -234,6 +240,7 @@ def test_ignore_logger_wildcard(sentry_init, capture_events):
234
240
235
241
(event ,) = events
236
242
assert event ["logentry" ]["message" ] == "hi"
243
+ assert event ["logentry" ]["formatted" ] == "hi"
237
244
238
245
239
246
def test_logging_dictionary_interpolation (sentry_init , capture_events ):
@@ -245,6 +252,10 @@ def test_logging_dictionary_interpolation(sentry_init, capture_events):
245
252
246
253
(event ,) = events
247
254
assert event ["logentry" ]["message" ] == "this is a log with a dictionary %s"
255
+ assert (
256
+ event ["logentry" ]["formatted" ]
257
+ == "this is a log with a dictionary {'foo': 'bar'}"
258
+ )
248
259
assert event ["logentry" ]["params" ] == {"foo" : "bar" }
249
260
250
261
@@ -263,4 +274,8 @@ def test_logging_dictionary_args(sentry_init, capture_events):
263
274
event ["logentry" ]["message" ]
264
275
== "the value of foo is %(foo)s, and the value of bar is %(bar)s"
265
276
)
277
+ assert (
278
+ event ["logentry" ]["formatted" ]
279
+ == "the value of foo is bar, and the value of bar is baz"
280
+ )
266
281
assert event ["logentry" ]["params" ] == {"foo" : "bar" , "bar" : "baz" }
0 commit comments