Skip to content

Commit 785c21c

Browse files
committed
added stringification to Logbook handler as well
1 parent d00c01e commit 785c21c

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

elasticapm/handlers/logbook.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import logbook
1717

1818
from elasticapm.base import Client
19+
from elasticapm.utils import compat
1920
from elasticapm.utils.encoding import to_unicode
2021

2122
LOOKBOOK_LEVELS = {
@@ -80,7 +81,7 @@ def _emit(self, record):
8081
exception = None
8182

8283
return self.client.capture_message(
83-
param_message={"message": record.msg, "params": record.args},
84+
param_message={"message": compat.text_type(record.msg), "params": record.args},
8485
exception=exception,
8586
level=LOOKBOOK_LEVELS[record.level],
8687
logger_name=record.channel,

tests/handlers/logbook/logbook_tests.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,3 +143,12 @@ def test_logbook_handler_dont_emit_elasticapm(capsys, elasticapm_client):
143143
handler.emit(LogRecord("elasticapm.errors", 1, "Oops"))
144144
out, err = capsys.readouterr()
145145
assert "Oops" in err
146+
147+
148+
def test_arbitrary_object(elasticapm_client, logbook_logger, logbook_handler):
149+
with logbook_handler.applicationbound():
150+
logbook_logger.info(["a", "list", "of", "strings"])
151+
assert len(logbook_handler.client.events) == 1
152+
event = logbook_handler.client.events.pop(0)["errors"][0]
153+
assert "param_message" in event["log"]
154+
assert event["log"]["param_message"] == "['a', 'list', 'of', 'strings']"

0 commit comments

Comments
 (0)