diff --git a/sentry_sdk/client.py b/sentry_sdk/client.py index 4dfccb3132..102392c61d 100644 --- a/sentry_sdk/client.py +++ b/sentry_sdk/client.py @@ -27,6 +27,7 @@ from sentry_sdk.tracing import trace from sentry_sdk.transport import BaseHttpTransport, make_transport from sentry_sdk.consts import ( + SPANDATA, DEFAULT_MAX_VALUE_LENGTH, DEFAULT_OPTIONS, INSTRUMENTER, @@ -894,6 +895,10 @@ def _capture_experimental_log(self, current_scope, log): return isolation_scope = current_scope.get_isolation_scope() + server_name = self.options.get("server_name") + if server_name is not None and SPANDATA.SERVER_ADDRESS not in log["attributes"]: + log["attributes"][SPANDATA.SERVER_ADDRESS] = server_name + environment = self.options.get("environment") if environment is not None and "sentry.environment" not in log["attributes"]: log["attributes"]["sentry.environment"] = environment diff --git a/tests/test_logs.py b/tests/test_logs.py index fb824760a8..d58aa9acdd 100644 --- a/tests/test_logs.py +++ b/tests/test_logs.py @@ -11,6 +11,7 @@ from sentry_sdk.envelope import Envelope from sentry_sdk.integrations.logging import LoggingIntegration from sentry_sdk.types import Log +from sentry_sdk.consts import SPANDATA minimum_python_37 = pytest.mark.skipif( sys.version_info < (3, 7), reason="Asyncio tests need Python >= 3.7" @@ -161,7 +162,7 @@ def test_logs_attributes(sentry_init, capture_envelopes): """ Passing arbitrary attributes to log messages. """ - sentry_init(_experiments={"enable_logs": True}) + sentry_init(_experiments={"enable_logs": True}, server_name="test-server") envelopes = capture_envelopes() attrs = { @@ -184,6 +185,7 @@ def test_logs_attributes(sentry_init, capture_envelopes): assert logs[0]["attributes"]["sentry.environment"] == "production" assert "sentry.release" in logs[0]["attributes"] assert logs[0]["attributes"]["sentry.message.parameters.my_var"] == "some value" + assert logs[0]["attributes"][SPANDATA.SERVER_ADDRESS] == "test-server" @minimum_python_37