diff --git a/synapse/rest/client/sync.py b/synapse/rest/client/sync.py
index bf3ac8d483..ccfce6bd53 100644
--- a/synapse/rest/client/sync.py
+++ b/synapse/rest/client/sync.py
@@ -52,7 +52,7 @@ from synapse.http.servlet import (
parse_string,
)
from synapse.http.site import SynapseRequest
-from synapse.logging.opentracing import trace_with_opname
+from synapse.logging.opentracing import log_kv, set_tag, trace_with_opname
from synapse.rest.admin.experimental_features import ExperimentalFeature
from synapse.types import JsonDict, Requester, SlidingSyncStreamToken, StreamToken
from synapse.types.rest.client import SlidingSyncBody
@@ -897,7 +897,23 @@ class SlidingSyncRestServlet(RestServlet):
# by filter ID. For now, we will just prototype with always passing everything
# in.
body = parse_and_validate_json_object_from_request(request, SlidingSyncBody)
- logger.info("Sliding sync request: %r", body)
+
+ # Tag and log useful data to differentiate requests.
+ set_tag("sliding_sync.conn_id", body.conn_id or "")
+ log_kv(
+ {
+ "sliding_sync.lists": {
+ list_name: {
+ "ranges": list_config.ranges,
+ "timeline_limit": list_config.timeline_limit,
+ }
+ for list_name, list_config in (body.lists or {}).items()
+ },
+ "sliding_sync.room_subscriptions": list(
+ (body.room_subscriptions or {}).keys()
+ ),
+ }
+ )
sync_config = SlidingSyncConfig(
user=user,
|