Skip to content

Commit 463b072

Browse files
authored
Move logging utilities out of the side drawer of util/ and into logging/ (matrix-org#5606)
1 parent cb8d568 commit 463b072

File tree

98 files changed

+249
-233
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+249
-233
lines changed

changelog.d/5606.misc

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Move logging code out of `synapse.util` and into `synapse.logging`.

contrib/example_log_config.yaml

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
# Example log_config file for synapse. To enable, point `log_config` to it in
1+
# Example log_config file for synapse. To enable, point `log_config` to it in
22
# `homeserver.yaml`, and restart synapse.
33
#
4-
# This configuration will produce similar results to the defaults within
4+
# This configuration will produce similar results to the defaults within
55
# synapse, but can be edited to give more flexibility.
66

77
version: 1
@@ -12,7 +12,7 @@ formatters:
1212

1313
filters:
1414
context:
15-
(): synapse.util.logcontext.LoggingContextFilter
15+
(): synapse.logging.context.LoggingContextFilter
1616
request: ""
1717

1818
handlers:
@@ -35,7 +35,7 @@ handlers:
3535
root:
3636
level: INFO
3737
handlers: [console] # to use file handler instead, switch to [file]
38-
38+
3939
loggers:
4040
synapse:
4141
level: INFO

contrib/experiments/test_messaging.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
from synapse.app.homeserver import SynapseHomeServer
3838

39-
# from synapse.util.logutils import log_function
39+
# from synapse.logging.utils import log_function
4040

4141
from twisted.internet import reactor, defer
4242
from twisted.python import log

contrib/systemd/log_config.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ formatters:
88

99
filters:
1010
context:
11-
(): synapse.util.logcontext.LoggingContextFilter
11+
(): synapse.logging.context.LoggingContextFilter
1212
request: ""
1313

1414
handlers:

debian/changelog

+3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ matrix-synapse-py3 (1.0.0+nmu1) UNRELEASED; urgency=medium
33
[ Silke Hofstra ]
44
* Include systemd-python to allow logging to the systemd journal.
55

6+
[ Amber Brown ]
7+
* Update logging config defaults to match API changes in Synapse.
8+
69
-- Silke Hofstra <silke@slxh.eu> Wed, 29 May 2019 09:45:29 +0200
710

811
matrix-synapse-py3 (1.0.0) stable; urgency=medium

debian/log.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ formatters:
77

88
filters:
99
context:
10-
(): synapse.util.logcontext.LoggingContextFilter
10+
(): synapse.logging.context.LoggingContextFilter
1111
request: ""
1212

1313
handlers:

docker/conf/log.config

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ formatters:
66

77
filters:
88
context:
9-
(): synapse.util.logcontext.LoggingContextFilter
9+
(): synapse.logging.context.LoggingContextFilter
1010
request: ""
1111

1212
handlers:

docs/log_contexts.rst

+19-19
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Log contexts
1+
Log Contexts
22
============
33

44
.. contents::
@@ -12,7 +12,7 @@ record.
1212
Logcontexts are also used for CPU and database accounting, so that we can track
1313
which requests were responsible for high CPU use or database activity.
1414

15-
The ``synapse.util.logcontext`` module provides a facilities for managing the
15+
The ``synapse.logging.context`` module provides a facilities for managing the
1616
current log context (as well as providing the ``LoggingContextFilter`` class).
1717

1818
Deferreds make the whole thing complicated, so this document describes how it
@@ -27,19 +27,19 @@ found them:
2727

2828
.. code:: python
2929
30-
from synapse.util import logcontext # omitted from future snippets
30+
from synapse.logging import context # omitted from future snippets
3131
3232
def handle_request(request_id):
33-
request_context = logcontext.LoggingContext()
33+
request_context = context.LoggingContext()
3434
35-
calling_context = logcontext.LoggingContext.current_context()
36-
logcontext.LoggingContext.set_current_context(request_context)
35+
calling_context = context.LoggingContext.current_context()
36+
context.LoggingContext.set_current_context(request_context)
3737
try:
3838
request_context.request = request_id
3939
do_request_handling()
4040
logger.debug("finished")
4141
finally:
42-
logcontext.LoggingContext.set_current_context(calling_context)
42+
context.LoggingContext.set_current_context(calling_context)
4343
4444
def do_request_handling():
4545
logger.debug("phew") # this will be logged against request_id
@@ -51,7 +51,7 @@ written much more succinctly as:
5151
.. code:: python
5252
5353
def handle_request(request_id):
54-
with logcontext.LoggingContext() as request_context:
54+
with context.LoggingContext() as request_context:
5555
request_context.request = request_id
5656
do_request_handling()
5757
logger.debug("finished")
@@ -74,7 +74,7 @@ blocking operation, and returns a deferred:
7474
7575
@defer.inlineCallbacks
7676
def handle_request(request_id):
77-
with logcontext.LoggingContext() as request_context:
77+
with context.LoggingContext() as request_context:
7878
request_context.request = request_id
7979
yield do_request_handling()
8080
logger.debug("finished")
@@ -179,7 +179,7 @@ though, we need to make up a new Deferred, or we get a Deferred back from
179179
external code. We need to make it follow our rules.
180180

181181
The easy way to do it is with a combination of ``defer.inlineCallbacks``, and
182-
``logcontext.PreserveLoggingContext``. Suppose we want to implement ``sleep``,
182+
``context.PreserveLoggingContext``. Suppose we want to implement ``sleep``,
183183
which returns a deferred which will run its callbacks after a given number of
184184
seconds. That might look like:
185185

@@ -204,13 +204,13 @@ That doesn't follow the rules, but we can fix it by wrapping it with
204204
This technique works equally for external functions which return deferreds,
205205
or deferreds we have made ourselves.
206206

207-
You can also use ``logcontext.make_deferred_yieldable``, which just does the
207+
You can also use ``context.make_deferred_yieldable``, which just does the
208208
boilerplate for you, so the above could be written:
209209

210210
.. code:: python
211211
212212
def sleep(seconds):
213-
return logcontext.make_deferred_yieldable(get_sleep_deferred(seconds))
213+
return context.make_deferred_yieldable(get_sleep_deferred(seconds))
214214
215215
216216
Fire-and-forget
@@ -279,7 +279,7 @@ Obviously that option means that the operations done in
279279
that might be fixed by setting a different logcontext via a ``with
280280
LoggingContext(...)`` in ``background_operation``).
281281

282-
The second option is to use ``logcontext.run_in_background``, which wraps a
282+
The second option is to use ``context.run_in_background``, which wraps a
283283
function so that it doesn't reset the logcontext even when it returns an
284284
incomplete deferred, and adds a callback to the returned deferred to reset the
285285
logcontext. In other words, it turns a function that follows the Synapse rules
@@ -293,7 +293,7 @@ It can be used like this:
293293
def do_request_handling():
294294
yield foreground_operation()
295295
296-
logcontext.run_in_background(background_operation)
296+
context.run_in_background(background_operation)
297297
298298
# this will now be logged against the request context
299299
logger.debug("Request handling complete")
@@ -332,16 +332,16 @@ gathered:
332332
result = yield defer.gatherResults([d1, d2])
333333
334334
In this case particularly, though, option two, of using
335-
``logcontext.preserve_fn`` almost certainly makes more sense, so that
335+
``context.preserve_fn`` almost certainly makes more sense, so that
336336
``operation1`` and ``operation2`` are both logged against the original
337337
logcontext. This looks like:
338338

339339
.. code:: python
340340
341341
@defer.inlineCallbacks
342342
def do_request_handling():
343-
d1 = logcontext.preserve_fn(operation1)()
344-
d2 = logcontext.preserve_fn(operation2)()
343+
d1 = context.preserve_fn(operation1)()
344+
d2 = context.preserve_fn(operation2)()
345345
346346
with PreserveLoggingContext():
347347
result = yield defer.gatherResults([d1, d2])
@@ -381,7 +381,7 @@ off the background process, and then leave the ``with`` block to wait for it:
381381
.. code:: python
382382
383383
def handle_request(request_id):
384-
with logcontext.LoggingContext() as request_context:
384+
with context.LoggingContext() as request_context:
385385
request_context.request = request_id
386386
d = do_request_handling()
387387
@@ -414,7 +414,7 @@ runs its callbacks in the original logcontext, all is happy.
414414

415415
The business of a Deferred which runs its callbacks in the original logcontext
416416
isn't hard to achieve — we have it today, in the shape of
417-
``logcontext._PreservingContextDeferred``:
417+
``context._PreservingContextDeferred``:
418418

419419
.. code:: python
420420

synapse/app/_base.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import synapse
2828
from synapse.app import check_bind_error
2929
from synapse.crypto import context_factory
30-
from synapse.util import PreserveLoggingContext
30+
from synapse.logging.context import PreserveLoggingContext
3131
from synapse.util.async_helpers import Linearizer
3232
from synapse.util.rlimit import change_resource_limit
3333
from synapse.util.versionstring import get_version_string

synapse/app/appservice.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
from synapse.config.homeserver import HomeServerConfig
2727
from synapse.config.logger import setup_logging
2828
from synapse.http.site import SynapseSite
29+
from synapse.logging.context import LoggingContext, run_in_background
2930
from synapse.metrics import RegistryProxy
3031
from synapse.metrics.resource import METRICS_PREFIX, MetricsResource
3132
from synapse.replication.slave.storage.appservice import SlavedApplicationServiceStore
@@ -36,7 +37,6 @@
3637
from synapse.server import HomeServer
3738
from synapse.storage.engines import create_engine
3839
from synapse.util.httpresourcetree import create_resource_tree
39-
from synapse.util.logcontext import LoggingContext, run_in_background
4040
from synapse.util.manhole import manhole
4141
from synapse.util.versionstring import get_version_string
4242

synapse/app/client_reader.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
from synapse.config.logger import setup_logging
2828
from synapse.http.server import JsonResource
2929
from synapse.http.site import SynapseSite
30+
from synapse.logging.context import LoggingContext
3031
from synapse.metrics import RegistryProxy
3132
from synapse.metrics.resource import METRICS_PREFIX, MetricsResource
3233
from synapse.replication.slave.storage._base import BaseSlavedStore
@@ -64,7 +65,6 @@
6465
from synapse.server import HomeServer
6566
from synapse.storage.engines import create_engine
6667
from synapse.util.httpresourcetree import create_resource_tree
67-
from synapse.util.logcontext import LoggingContext
6868
from synapse.util.manhole import manhole
6969
from synapse.util.versionstring import get_version_string
7070

synapse/app/event_creator.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
from synapse.config.logger import setup_logging
2828
from synapse.http.server import JsonResource
2929
from synapse.http.site import SynapseSite
30+
from synapse.logging.context import LoggingContext
3031
from synapse.metrics import RegistryProxy
3132
from synapse.metrics.resource import METRICS_PREFIX, MetricsResource
3233
from synapse.replication.slave.storage._base import BaseSlavedStore
@@ -59,7 +60,6 @@
5960
from synapse.storage.engines import create_engine
6061
from synapse.storage.user_directory import UserDirectoryStore
6162
from synapse.util.httpresourcetree import create_resource_tree
62-
from synapse.util.logcontext import LoggingContext
6363
from synapse.util.manhole import manhole
6464
from synapse.util.versionstring import get_version_string
6565

synapse/app/federation_reader.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
from synapse.config.logger import setup_logging
2929
from synapse.federation.transport.server import TransportLayerServer
3030
from synapse.http.site import SynapseSite
31+
from synapse.logging.context import LoggingContext
3132
from synapse.metrics import RegistryProxy
3233
from synapse.metrics.resource import METRICS_PREFIX, MetricsResource
3334
from synapse.replication.slave.storage._base import BaseSlavedStore
@@ -48,7 +49,6 @@
4849
from synapse.server import HomeServer
4950
from synapse.storage.engines import create_engine
5051
from synapse.util.httpresourcetree import create_resource_tree
51-
from synapse.util.logcontext import LoggingContext
5252
from synapse.util.manhole import manhole
5353
from synapse.util.versionstring import get_version_string
5454

synapse/app/federation_sender.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
from synapse.config.logger import setup_logging
2828
from synapse.federation import send_queue
2929
from synapse.http.site import SynapseSite
30+
from synapse.logging.context import LoggingContext, run_in_background
3031
from synapse.metrics import RegistryProxy
3132
from synapse.metrics.background_process_metrics import run_as_background_process
3233
from synapse.metrics.resource import METRICS_PREFIX, MetricsResource
@@ -44,7 +45,6 @@
4445
from synapse.types import ReadReceipt
4546
from synapse.util.async_helpers import Linearizer
4647
from synapse.util.httpresourcetree import create_resource_tree
47-
from synapse.util.logcontext import LoggingContext, run_in_background
4848
from synapse.util.manhole import manhole
4949
from synapse.util.versionstring import get_version_string
5050

synapse/app/frontend_proxy.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
from synapse.http.server import JsonResource
3030
from synapse.http.servlet import RestServlet, parse_json_object_from_request
3131
from synapse.http.site import SynapseSite
32+
from synapse.logging.context import LoggingContext
3233
from synapse.metrics import RegistryProxy
3334
from synapse.metrics.resource import METRICS_PREFIX, MetricsResource
3435
from synapse.replication.slave.storage._base import BaseSlavedStore
@@ -41,7 +42,6 @@
4142
from synapse.server import HomeServer
4243
from synapse.storage.engines import create_engine
4344
from synapse.util.httpresourcetree import create_resource_tree
44-
from synapse.util.logcontext import LoggingContext
4545
from synapse.util.manhole import manhole
4646
from synapse.util.versionstring import get_version_string
4747

synapse/app/homeserver.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
from synapse.http.additional_resource import AdditionalResource
5555
from synapse.http.server import RootRedirect
5656
from synapse.http.site import SynapseSite
57+
from synapse.logging.context import LoggingContext
5758
from synapse.metrics import RegistryProxy
5859
from synapse.metrics.background_process_metrics import run_as_background_process
5960
from synapse.metrics.resource import METRICS_PREFIX, MetricsResource
@@ -72,7 +73,6 @@
7273
from synapse.storage.prepare_database import UpgradeDatabaseException, prepare_database
7374
from synapse.util.caches import CACHE_SIZE_FACTOR
7475
from synapse.util.httpresourcetree import create_resource_tree
75-
from synapse.util.logcontext import LoggingContext
7676
from synapse.util.manhole import manhole
7777
from synapse.util.module_loader import load_module
7878
from synapse.util.rlimit import change_resource_limit

synapse/app/media_repository.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
from synapse.config.homeserver import HomeServerConfig
2828
from synapse.config.logger import setup_logging
2929
from synapse.http.site import SynapseSite
30+
from synapse.logging.context import LoggingContext
3031
from synapse.metrics import RegistryProxy
3132
from synapse.metrics.resource import METRICS_PREFIX, MetricsResource
3233
from synapse.replication.slave.storage._base import BaseSlavedStore
@@ -40,7 +41,6 @@
4041
from synapse.storage.engines import create_engine
4142
from synapse.storage.media_repository import MediaRepositoryStore
4243
from synapse.util.httpresourcetree import create_resource_tree
43-
from synapse.util.logcontext import LoggingContext
4444
from synapse.util.manhole import manhole
4545
from synapse.util.versionstring import get_version_string
4646

synapse/app/pusher.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
from synapse.config.homeserver import HomeServerConfig
2727
from synapse.config.logger import setup_logging
2828
from synapse.http.site import SynapseSite
29+
from synapse.logging.context import LoggingContext, run_in_background
2930
from synapse.metrics import RegistryProxy
3031
from synapse.metrics.resource import METRICS_PREFIX, MetricsResource
3132
from synapse.replication.slave.storage._base import __func__
@@ -38,7 +39,6 @@
3839
from synapse.storage import DataStore
3940
from synapse.storage.engines import create_engine
4041
from synapse.util.httpresourcetree import create_resource_tree
41-
from synapse.util.logcontext import LoggingContext, run_in_background
4242
from synapse.util.manhole import manhole
4343
from synapse.util.versionstring import get_version_string
4444

synapse/app/synchrotron.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
from synapse.handlers.presence import PresenceHandler, get_interested_parties
3232
from synapse.http.server import JsonResource
3333
from synapse.http.site import SynapseSite
34+
from synapse.logging.context import LoggingContext, run_in_background
3435
from synapse.metrics import RegistryProxy
3536
from synapse.metrics.resource import METRICS_PREFIX, MetricsResource
3637
from synapse.replication.slave.storage._base import BaseSlavedStore, __func__
@@ -57,7 +58,6 @@
5758
from synapse.storage.engines import create_engine
5859
from synapse.storage.presence import UserPresenceState
5960
from synapse.util.httpresourcetree import create_resource_tree
60-
from synapse.util.logcontext import LoggingContext, run_in_background
6161
from synapse.util.manhole import manhole
6262
from synapse.util.stringutils import random_string
6363
from synapse.util.versionstring import get_version_string

synapse/app/user_dir.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
from synapse.config.logger import setup_logging
2929
from synapse.http.server import JsonResource
3030
from synapse.http.site import SynapseSite
31+
from synapse.logging.context import LoggingContext, run_in_background
3132
from synapse.metrics import RegistryProxy
3233
from synapse.metrics.resource import METRICS_PREFIX, MetricsResource
3334
from synapse.replication.slave.storage._base import BaseSlavedStore
@@ -46,7 +47,6 @@
4647
from synapse.storage.user_directory import UserDirectoryStore
4748
from synapse.util.caches.stream_change_cache import StreamChangeCache
4849
from synapse.util.httpresourcetree import create_resource_tree
49-
from synapse.util.logcontext import LoggingContext, run_in_background
5050
from synapse.util.manhole import manhole
5151
from synapse.util.versionstring import get_version_string
5252

0 commit comments

Comments
 (0)