)]}'
{"doc/source/logs.rst":[{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"7c642475b3f8808d929ef8b3798ea1bc1794257b","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"This setting would add the container metadata entries ``X-Storage-Policy`` and"},{"line_number":87,"context_line":"``X-Container-Meta-Log-To`` to each log entry for container and object"},{"line_number":88,"context_line":"requests."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Metadata log entries are ``key:value`` strings and multiple entries are"},{"line_number":91,"context_line":"comma-separated. The complete string is then url-encoded and added to the"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa98f980_a0be7bd2","line":88,"updated":"2014-09-02 02:03:11.000000000","message":"maybe one more comment here that entries configured here that are not found are ignored (as opposed to providing some indication like a warning or something that some container metadata was requested but didn\u0027t exist)?","commit_id":"980673785c859e8133c1e3e7abcb59fbd083d376"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"c0edbb073b8143d245b37e3e6245c9269801f45e","unresolved":false,"context_lines":[{"line_number":86,"context_line":"This setting would add the container metadata entries ``X-Storage-Policy`` and"},{"line_number":87,"context_line":"``X-Container-Meta-Log-To`` to each log entry for container and object"},{"line_number":88,"context_line":"requests. Please note that entries that are configured but not found are"},{"line_number":89,"context_line":"silently ignored."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Metadata log entries are ``key:value`` strings and multiple entries are"},{"line_number":92,"context_line":"comma-separated. The complete string is then url-encoded and added to the"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9aa7fdbe_a2032372","line":89,"updated":"2014-10-20 04:28:12.000000000","message":"I\u0027ve been testing this change, in my tests if I set:\n\n  log_metadata \u003d sysmeta-storage-policy, meta-custom-tag\n\nthe custom-tag is added. BUT the storage policy isn\u0027t.. so I looked into the code and storage policy isn\u0027t a part of the sysmeta dictionary passed back with the contianer info, so a user can\u0027t get access to storage-policy this code. In the container_info dict it is stored in the root: \n\n  container_info[\u0027storage_policy\u0027]\n\nStorage policy is stored in the container_info table is into own field, not as a part of the metadata field.","commit_id":"0c457741b3c0af1c8b710f7758e4b7fe3fa4452a"}],"etc/proxy-server.conf-sample":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"77d20fd9035bc2eb40b3be2df3235a7db0d21d8e","unresolved":false,"context_lines":[{"line_number":495,"context_line":"# middleware and never made it through to the right-most middleware (and"},{"line_number":496,"context_line":"# proxy server). Double logging is prevented for normal requests. See"},{"line_number":497,"context_line":"# proxy-logging docs."},{"line_number":498,"context_line":"# "},{"line_number":499,"context_line":"# It might be useful to add some container metadata to log entries, for"},{"line_number":500,"context_line":"# example to include the storage policy or an entry that can be used for"},{"line_number":501,"context_line":"# post processing."}],"source_content_type":"application/octet-stream","patch_set":4,"id":"AAAAVn%2F%2FiC0%3D","line":498,"updated":"2014-03-05 15:26:32.000000000","message":"it doesn\u0027t bother me, but there\u0027s a trailing whitespace here","commit_id":"925b6658bdd6b0c9359a3b92ce5a1388bcf94a40"}],"swift/common/middleware/proxy_logging.py":[{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"3924626a3182cad596d2320e0c51e029d2446a81","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        try:"},{"line_number":226,"context_line":"            (version, account, container, objname) \u003d split_path("},{"line_number":227,"context_line":"                request.path_info, 1, 4, True)"},{"line_number":228,"context_line":"        except ValueError:"},{"line_number":229,"context_line":"            return []"},{"line_number":230,"context_line":"        log_info \u003d []"},{"line_number":231,"context_line":"        if container:  # log only container and object requests"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_135806f9","line":228,"updated":"2014-07-05 20:53:08.000000000","message":"Missing coverage in unit test here","commit_id":"a5b224296d22b72c7cbe5da4da909597a5eda550"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"54b1c26f9a30555a56edebfc44a149c8301dc169","unresolved":false,"context_lines":[{"line_number":242,"context_line":"                    value \u003d user_metadata.get(key[5:])"},{"line_number":243,"context_line":"                if value is not None:"},{"line_number":244,"context_line":"                    log_info.append(\"%s:%s\" % (key, value))"},{"line_number":245,"context_line":"        return log_info"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    def __call__(self, env, start_response):"},{"line_number":248,"context_line":"        if self.req_already_logged(env):"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_20cd2b5e","line":245,"updated":"2014-09-02 02:26:06.000000000","message":"Maybe do a check for a fully passed in header, so OPs can put in full headers into the log_metadata as they may not how how the shortening works, but definitely know how to add custom metadata. (X-Container-Meta-MyTag, etc).","commit_id":"980673785c859e8133c1e3e7abcb59fbd083d376"}]}
