)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"c317e9941fe9bd94e2697752b24c6fe75ea784d4","unresolved":true,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Move log capture functionality from FakeLogger to DebugLogAdapter"},{"line_number":10,"context_line":"for consistency with system log capture pattern. FakeLogger will"},{"line_number":11,"context_line":"no longer capyure logs but is currently only used as a fake syslog"},{"line_number":12,"context_line":"handler."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Some unit tests were previously calling"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"d5d92009_47dc1508","line":11,"range":{"start_line":11,"start_character":10,"end_line":11,"end_character":17},"updated":"2021-06-24 15:32:52.000000000","message":"capture","commit_id":"4b72e5091d98d8da579382ddf2c601c961499e59"}],"test/debug_logger.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"51d7ff7b1ffd3e14a68c773c486b269855e7a13a","unresolved":true,"context_lines":[{"line_number":176,"context_line":"    A LogAdapter that is capable of capturing logs for inspection via accessor"},{"line_number":177,"context_line":"    methods. Captures log records passed to the ``handle`` method and provides"},{"line_number":178,"context_line":"    accessor functions to the captured logs."},{"line_number":179,"context_line":"    \"\"\""},{"line_number":180,"context_line":"    def __init__(self, logger, name):"},{"line_number":181,"context_line":"        super(CaptureLogAdapter, self).__init__(logger, name)"},{"line_number":182,"context_line":"        self.clear()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a2893a6_607304c3","line":179,"updated":"2021-06-24 15:43:57.000000000","message":"I kind of like that this has become a concrete class instead of just a Mixin","commit_id":"4b72e5091d98d8da579382ddf2c601c961499e59"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"51d7ff7b1ffd3e14a68c773c486b269855e7a13a","unresolved":true,"context_lines":[{"line_number":216,"context_line":"        return 0"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    def handle(self, record):"},{"line_number":219,"context_line":"        return self._handle(record)"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    def start_capture(self):"},{"line_number":222,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f012f9d_f1479a0d","line":219,"updated":"2021-06-24 15:43:57.000000000","message":"I\u0027m not sure why our Adapter has a handle method, it looks like the main entrypoint for a LogAdapter is .log - which calls self.logger.log (which calls _log -\u003e handle -\u003e callHandlers)","commit_id":"4b72e5091d98d8da579382ddf2c601c961499e59"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"51d7ff7b1ffd3e14a68c773c486b269855e7a13a","unresolved":true,"context_lines":[{"line_number":252,"context_line":"    timing \u003d _send_to_logger(\u0027timing\u0027)"},{"line_number":253,"context_line":"    timing_since \u003d _send_to_logger(\u0027timing_since\u0027)"},{"line_number":254,"context_line":"    transfer_rate \u003d _send_to_logger(\u0027transfer_rate\u0027)"},{"line_number":255,"context_line":"    set_statsd_prefix \u003d _send_to_logger(\u0027set_statsd_prefix\u0027)"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"    def __getattribute__(self, name):"},{"line_number":258,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"546c86fc_42361fef","line":255,"updated":"2021-06-24 15:43:57.000000000","message":"I don\u0027t understand why these forward methods are needed on the DebugLogAdapter if they\u0027re not available on all the other LogAdapters that might be wrapping up the \"logger\" instances we pass to daemons 😕","commit_id":"4b72e5091d98d8da579382ddf2c601c961499e59"}]}
