)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"599155ed8bec152e3fe5d1a7e69805e0469b35de","unresolved":false,"context_lines":[{"line_number":12,"context_line":"data without enabling debug log level. This patch also adds timestamp"},{"line_number":13,"context_line":"to log_file if local_output_log_base is specified."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Partials-bug #1781372"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I729e57caecd502d018084c3c766278006bcbf0c9"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f7c97a3_051a9ec5","line":15,"updated":"2018-08-01 13:46:18.000000000","message":"Partial","commit_id":"7c474bcf4a2903cbb6cbdc7b1481cfb67dbd5f65"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"e02e18ce7d92faa1fb0f0cb6ec0a0012d2d0bd1d","unresolved":false,"context_lines":[{"line_number":12,"context_line":"data without enabling debug log level. This patch also adds timestamp"},{"line_number":13,"context_line":"to log_file if local_output_log_base is specified."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Partials-bug #1781372"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I729e57caecd502d018084c3c766278006bcbf0c9"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5f7c97a3_c5c34605","line":15,"in_reply_to":"5f7c97a3_051a9ec5","updated":"2018-08-01 13:46:50.000000000","message":"Done","commit_id":"7c474bcf4a2903cbb6cbdc7b1481cfb67dbd5f65"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"7898f9f78861d08e59cc05c670e6ffe048d6e9dd","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Nguyen Phuong An \u003cAnNP@vn.fujitsu.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-08-01 13:52:55 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix no packet log data when disbale debug log level"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In production environment, it\u0027s quite difficult to require operator"},{"line_number":10,"context_line":"to enable debug log level. So This patch change LOG.debug to LOG.info"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f7c97a3_00b84c0f","line":7,"updated":"2018-08-01 14:05:46.000000000","message":"Align loglevel for security group logging\nor\nFix no packet log data while setting debug\u003dFalse","commit_id":"9fc61b4d9b787391c6743ae0ae8067e316a7e1e0"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"7898f9f78861d08e59cc05c670e6ffe048d6e9dd","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix no packet log data when disbale debug log level"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In production environment, it\u0027s quite difficult to require operator"},{"line_number":10,"context_line":"to enable debug log level. So This patch change LOG.debug to LOG.info"},{"line_number":11,"context_line":"of packet_in_handler function. Therefore operator can get packet log"},{"line_number":12,"context_line":"data without enabling debug log level. This patch also adds timestamp"},{"line_number":13,"context_line":"to log_file if local_output_log_base is specified."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f7c97a3_00436c41","line":10,"range":{"start_line":10,"start_character":26,"end_line":10,"end_character":30},"updated":"2018-08-01 14:05:46.000000000","message":"I think it is not necessary.","commit_id":"9fc61b4d9b787391c6743ae0ae8067e316a7e1e0"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"7898f9f78861d08e59cc05c670e6ffe048d6e9dd","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix no packet log data when disbale debug log level"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In production environment, it\u0027s quite difficult to require operator"},{"line_number":10,"context_line":"to enable debug log level. So This patch change LOG.debug to LOG.info"},{"line_number":11,"context_line":"of packet_in_handler function. Therefore operator can get packet log"},{"line_number":12,"context_line":"data without enabling debug log level. This patch also adds timestamp"},{"line_number":13,"context_line":"to log_file if local_output_log_base is specified."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f7c97a3_c07254b0","line":10,"range":{"start_line":10,"start_character":41,"end_line":10,"end_character":47},"updated":"2018-08-01 14:05:46.000000000","message":"changes","commit_id":"9fc61b4d9b787391c6743ae0ae8067e316a7e1e0"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"7898f9f78861d08e59cc05c670e6ffe048d6e9dd","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In production environment, it\u0027s quite difficult to require operator"},{"line_number":10,"context_line":"to enable debug log level. So This patch change LOG.debug to LOG.info"},{"line_number":11,"context_line":"of packet_in_handler function. Therefore operator can get packet log"},{"line_number":12,"context_line":"data without enabling debug log level. This patch also adds timestamp"},{"line_number":13,"context_line":"to log_file if local_output_log_base is specified."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f7c97a3_608fc075","line":11,"updated":"2018-08-01 14:05:46.000000000","message":"We follow Slawek\u0027s suggestion.  So, it should be... (I\u0027m not native speaker but the points are as follows)\n\nThis patch aligns loglevel for packet log with debug config as follows:\n\n    * debug\u003dTrue:  packet logs are retrieved as \"DEBUG\"\n    * debug\u003dFalse: packet logs are retrieved as \"INFO\"","commit_id":"9fc61b4d9b787391c6743ae0ae8067e316a7e1e0"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"7898f9f78861d08e59cc05c670e6ffe048d6e9dd","unresolved":false,"context_lines":[{"line_number":13,"context_line":"to log_file if local_output_log_base is specified."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Partial-Bug #1781372"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I729e57caecd502d018084c3c766278006bcbf0c9"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f7c97a3_80ebfc0e","line":16,"updated":"2018-08-01 14:05:46.000000000","message":"Not necessary blank.","commit_id":"9fc61b4d9b787391c6743ae0ae8067e316a7e1e0"}],"neutron/services/logapi/drivers/openvswitch/ovs_firewall_log.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"562c1f930c574c145f93cf78fd57781cd008d8fd","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    if log_file:"},{"line_number":51,"context_line":"        import logging"},{"line_number":52,"context_line":"        log_file_handler \u003d logging.handlers.WatchedFileHandler(log_file)"},{"line_number":53,"context_line":"        log_file_handler.setLevel(logging.INFO)"},{"line_number":54,"context_line":"        log_file_handler.setFormatter(logging.Formatter("},{"line_number":55,"context_line":"            fmt\u003d\"%(asctime)s %(message)s\", datefmt\u003dcfg.CONF.log_date_format))"},{"line_number":56,"context_line":"        LOG.logger.addHandler(log_file_handler)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_fade2169","line":53,"updated":"2018-08-01 12:49:43.000000000","message":"shouldn\u0027t this be the same as set in config file, so DEBUG if cfg.CONF.debug \u003d\u003d True else INFO?","commit_id":"44b705940bf7b2ee0e1b273a69df4efb53c1ac73"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"10b1297ca31983e89b658a232ec8112c4d029261","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    if log_file:"},{"line_number":51,"context_line":"        import logging"},{"line_number":52,"context_line":"        log_file_handler \u003d logging.handlers.WatchedFileHandler(log_file)"},{"line_number":53,"context_line":"        log_file_handler.setLevel(logging.INFO)"},{"line_number":54,"context_line":"        log_file_handler.setFormatter(logging.Formatter("},{"line_number":55,"context_line":"            fmt\u003d\"%(asctime)s %(message)s\", datefmt\u003dcfg.CONF.log_date_format))"},{"line_number":56,"context_line":"        LOG.logger.addHandler(log_file_handler)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_a052b80f","line":53,"in_reply_to":"5f7c97a3_651fd2b7","updated":"2018-08-01 13:54:58.000000000","message":"+1 Yeah, good suggestion, Slawek!","commit_id":"44b705940bf7b2ee0e1b273a69df4efb53c1ac73"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"07e29c885a3ce45ff45731f306886eda03012f82","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    if log_file:"},{"line_number":51,"context_line":"        import logging"},{"line_number":52,"context_line":"        log_file_handler \u003d logging.handlers.WatchedFileHandler(log_file)"},{"line_number":53,"context_line":"        log_file_handler.setLevel(logging.INFO)"},{"line_number":54,"context_line":"        log_file_handler.setFormatter(logging.Formatter("},{"line_number":55,"context_line":"            fmt\u003d\"%(asctime)s %(message)s\", datefmt\u003dcfg.CONF.log_date_format))"},{"line_number":56,"context_line":"        LOG.logger.addHandler(log_file_handler)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_651fd2b7","line":53,"in_reply_to":"5f7c97a3_fade2169","updated":"2018-08-01 13:46:10.000000000","message":"Thanks for your great suggestion. Done.","commit_id":"44b705940bf7b2ee0e1b273a69df4efb53c1ac73"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"562c1f930c574c145f93cf78fd57781cd008d8fd","unresolved":false,"context_lines":[{"line_number":172,"context_line":"                     list(cookie_entry.log_object_refs),"},{"line_number":173,"context_line":"                     cookie_entry.port, pkt)"},{"line_number":174,"context_line":"        except log_exc.CookieNotFound:"},{"line_number":175,"context_line":"            LOG.info(\"Unknown cookie\u003d%s packet_in pkt\u003d%s\", cookie_id, pkt)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def defer_apply_on(self):"},{"line_number":178,"context_line":"        self._deferred \u003d True"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_5abdd500","line":175,"updated":"2018-08-01 12:49:43.000000000","message":"is this \"normal\" situation? Maybe warning would be better here?","commit_id":"44b705940bf7b2ee0e1b273a69df4efb53c1ac73"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"07e29c885a3ce45ff45731f306886eda03012f82","unresolved":false,"context_lines":[{"line_number":172,"context_line":"                     list(cookie_entry.log_object_refs),"},{"line_number":173,"context_line":"                     cookie_entry.port, pkt)"},{"line_number":174,"context_line":"        except log_exc.CookieNotFound:"},{"line_number":175,"context_line":"            LOG.info(\"Unknown cookie\u003d%s packet_in pkt\u003d%s\", cookie_id, pkt)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def defer_apply_on(self):"},{"line_number":178,"context_line":"        self._deferred \u003d True"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_c55ee677","line":175,"in_reply_to":"5f7c97a3_5abdd500","updated":"2018-08-01 13:46:10.000000000","message":"Yes. It should be warning level. Thanks.","commit_id":"44b705940bf7b2ee0e1b273a69df4efb53c1ac73"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"7898f9f78861d08e59cc05c670e6ffe048d6e9dd","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    if log_file:"},{"line_number":51,"context_line":"        import logging"},{"line_number":52,"context_line":"        log_file_handler \u003d logging.handlers.WatchedFileHandler(log_file)"},{"line_number":53,"context_line":"        log_level \u003d logging.DEBUG if cfg.CONF.debug\u003d\u003dTrue else logging.INFO"},{"line_number":54,"context_line":"        log_file_handler.setLevel(log_level)"},{"line_number":55,"context_line":"        log_file_handler.setFormatter(logging.Formatter("},{"line_number":56,"context_line":"            fmt\u003d\"%(asctime)s %(message)s\", datefmt\u003dcfg.CONF.log_date_format))"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_4047241f","line":53,"range":{"start_line":53,"start_character":37,"end_line":53,"end_character":57},"updated":"2018-08-01 14:05:46.000000000","message":"cfg.CONF.debug","commit_id":"9fc61b4d9b787391c6743ae0ae8067e316a7e1e0"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"9d067877bf5d9b0c81257a5fdd813d548c74934b","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    if log_file:"},{"line_number":51,"context_line":"        import logging"},{"line_number":52,"context_line":"        log_file_handler \u003d logging.handlers.WatchedFileHandler(log_file)"},{"line_number":53,"context_line":"        log_level \u003d logging.DEBUG if cfg.CONF.debug\u003d\u003dTrue else logging.INFO"},{"line_number":54,"context_line":"        log_file_handler.setLevel(log_level)"},{"line_number":55,"context_line":"        log_file_handler.setFormatter(logging.Formatter("},{"line_number":56,"context_line":"            fmt\u003d\"%(asctime)s %(message)s\", datefmt\u003dcfg.CONF.log_date_format))"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_2b2209b8","line":53,"range":{"start_line":53,"start_character":37,"end_line":53,"end_character":57},"in_reply_to":"5f7c97a3_4047241f","updated":"2018-08-01 15:13:08.000000000","message":"Cool! Thanks!","commit_id":"9fc61b4d9b787391c6743ae0ae8067e316a7e1e0"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e9eaf0c2ab91a8af23abb03f06e47bf770d19e4e","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        log_level \u003d logging.DEBUG if cfg.CONF.debug else logging.INFO"},{"line_number":54,"context_line":"        log_file_handler.setLevel(log_level)"},{"line_number":55,"context_line":"        log_file_handler.setFormatter(logging.Formatter("},{"line_number":56,"context_line":"            fmt\u003d\"%(asctime)s %(message)s\", datefmt\u003dcfg.CONF.log_date_format))"},{"line_number":57,"context_line":"        LOG.logger.addHandler(log_file_handler)"},{"line_number":58,"context_line":"    elif cfg.CONF.use_journal:"},{"line_number":59,"context_line":"        journal_handler \u003d handlers.OSJournalHandler()"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_9a8b6815","line":56,"updated":"2018-08-01 16:07:30.000000000","message":"It doesn\u0027t seem right to change the format string from something the user might have specified in logging_default_format_string to this.  Can you explain why it\u0027s necessary?","commit_id":"9f21887ee689fa447515eec8cc23c7c571834451"},{"author":{"_account_id":13702,"name":"yushiro","username":"yushiro","inactive":true},"change_message_id":"1bb1a85ff59233c92d49a36716bd2f4b7e2ab507","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        log_level \u003d logging.DEBUG if cfg.CONF.debug else logging.INFO"},{"line_number":54,"context_line":"        log_file_handler.setLevel(log_level)"},{"line_number":55,"context_line":"        log_file_handler.setFormatter(logging.Formatter("},{"line_number":56,"context_line":"            fmt\u003d\"%(asctime)s %(message)s\", datefmt\u003dcfg.CONF.log_date_format))"},{"line_number":57,"context_line":"        LOG.logger.addHandler(log_file_handler)"},{"line_number":58,"context_line":"    elif cfg.CONF.use_journal:"},{"line_number":59,"context_line":"        journal_handler \u003d handlers.OSJournalHandler()"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_eef411d2","line":56,"in_reply_to":"5f7c97a3_9a8b6815","updated":"2018-08-02 03:51:32.000000000","message":"Thanks Brian.  We thought that loglevel is unnecessary for packet log.  However, using same format is also enough for us and reasonable for now :)  I think we should explain/discuss more about logging format in the future.","commit_id":"9f21887ee689fa447515eec8cc23c7c571834451"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"c59507056428ab28f309e2412674b03724c91257","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        log_level \u003d logging.DEBUG if cfg.CONF.debug else logging.INFO"},{"line_number":54,"context_line":"        log_file_handler.setLevel(log_level)"},{"line_number":55,"context_line":"        log_file_handler.setFormatter(logging.Formatter("},{"line_number":56,"context_line":"            fmt\u003d\"%(asctime)s %(message)s\", datefmt\u003dcfg.CONF.log_date_format))"},{"line_number":57,"context_line":"        LOG.logger.addHandler(log_file_handler)"},{"line_number":58,"context_line":"    elif cfg.CONF.use_journal:"},{"line_number":59,"context_line":"        journal_handler \u003d handlers.OSJournalHandler()"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_94b7b0d7","line":56,"in_reply_to":"5f7c97a3_b44c2c40","updated":"2018-08-02 07:24:05.000000000","message":"Hi Brian,\n\nI have fixed this by using ContextFormatter. Thanks a ton! :)","commit_id":"9f21887ee689fa447515eec8cc23c7c571834451"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"5db0bbcd0da3ef1aeb7303437528341ecbf20709","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        log_level \u003d logging.DEBUG if cfg.CONF.debug else logging.INFO"},{"line_number":54,"context_line":"        log_file_handler.setLevel(log_level)"},{"line_number":55,"context_line":"        log_file_handler.setFormatter(logging.Formatter("},{"line_number":56,"context_line":"            fmt\u003d\"%(asctime)s %(message)s\", datefmt\u003dcfg.CONF.log_date_format))"},{"line_number":57,"context_line":"        LOG.logger.addHandler(log_file_handler)"},{"line_number":58,"context_line":"    elif cfg.CONF.use_journal:"},{"line_number":59,"context_line":"        journal_handler \u003d handlers.OSJournalHandler()"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_b44c2c40","line":56,"in_reply_to":"5f7c97a3_eef411d2","updated":"2018-08-02 07:08:42.000000000","message":"Hi Brian,\n\nActually, we only want to add timestamp into packet log line, This attribute is need for tracing when a packet is dropped or accepted. I tried to set format with cfg.CONF.logging_default_format_string, but I got a error: KeyError: instance. Do you know, how can I fix this? Thanks.","commit_id":"9f21887ee689fa447515eec8cc23c7c571834451"}]}
