)]}'
{"oslo/log/handlers.py":[{"author":{"_account_id":6794,"name":"Simon Pasquier","email":"pasquier.simon@gmail.com","username":"simon-pasquier"},"change_message_id":"a7c9f9d0cd8a6a8af6812baef6bf5b8da7c5124f","unresolved":false,"context_lines":[{"line_number":39,"context_line":"_AUDIT \u003d logging.INFO + 1"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"class OSSysLogHandler(logging.Handler):"},{"line_number":43,"context_line":"    # List stolen from logging.handlers.SyslogHandler"},{"line_number":44,"context_line":"    priority_map \u003d {"},{"line_number":45,"context_line":"        \"alert\": syslog.LOG_ALERT,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_37261817","line":42,"range":{"start_line":42,"start_character":6,"end_line":42,"end_character":21},"updated":"2014-12-02 16:35:42.000000000","message":"s/OSSysLogHandler/OSSyslogHandler/\n\nnit but there is no capital L in Syslog","commit_id":"486187d379dcfb23f846f0b76f77ee7ba6a75edb"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"290ff78db33695beff43bbe5fc038c3323f5bd87","unresolved":false,"context_lines":[{"line_number":39,"context_line":"_AUDIT \u003d logging.INFO + 1"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"class OSSysLogHandler(logging.Handler):"},{"line_number":43,"context_line":"    # List stolen from logging.handlers.SyslogHandler"},{"line_number":44,"context_line":"    priority_map \u003d {"},{"line_number":45,"context_line":"        \"alert\": syslog.LOG_ALERT,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_6979a02e","line":42,"in_reply_to":"5a890539_37261817","updated":"2014-12-02 17:00:36.000000000","message":"But there is in the Python class implementing syslog so I kept it :(","commit_id":"486187d379dcfb23f846f0b76f77ee7ba6a75edb"},{"author":{"_account_id":6794,"name":"Simon Pasquier","email":"pasquier.simon@gmail.com","username":"simon-pasquier"},"change_message_id":"a7c9f9d0cd8a6a8af6812baef6bf5b8da7c5124f","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"class OSSysLogHandler(logging.Handler):"},{"line_number":43,"context_line":"    # List stolen from logging.handlers.SyslogHandler"},{"line_number":44,"context_line":"    priority_map \u003d {"},{"line_number":45,"context_line":"        \"alert\": syslog.LOG_ALERT,"},{"line_number":46,"context_line":"        \"crit\": syslog.LOG_CRIT,"},{"line_number":47,"context_line":"        \"critical\": syslog.LOG_CRIT,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_32954640","line":44,"updated":"2014-12-02 16:35:42.000000000","message":"The keys should be the default level names from the Python logging library. Right now it raises KeyError in the emit() method.\n\n  priority_map \u003d {\n    \"CRITICAL\": syslog.LOG_CRIT,\n    \"ERROR\": syslog.LOG_ERR,\n    ...\n  }","commit_id":"486187d379dcfb23f846f0b76f77ee7ba6a75edb"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"290ff78db33695beff43bbe5fc038c3323f5bd87","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"class OSSysLogHandler(logging.Handler):"},{"line_number":43,"context_line":"    # List stolen from logging.handlers.SyslogHandler"},{"line_number":44,"context_line":"    priority_map \u003d {"},{"line_number":45,"context_line":"        \"alert\": syslog.LOG_ALERT,"},{"line_number":46,"context_line":"        \"crit\": syslog.LOG_CRIT,"},{"line_number":47,"context_line":"        \"critical\": syslog.LOG_CRIT,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_09fbbc7b","line":44,"in_reply_to":"5a890539_32954640","updated":"2014-12-02 17:00:36.000000000","message":"Done","commit_id":"486187d379dcfb23f846f0b76f77ee7ba6a75edb"},{"author":{"_account_id":6794,"name":"Simon Pasquier","email":"pasquier.simon@gmail.com","username":"simon-pasquier"},"change_message_id":"a7c9f9d0cd8a6a8af6812baef6bf5b8da7c5124f","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                 use_syslog_rfc_format\u003dTrue):"},{"line_number":61,"context_line":"        # Do not use super() unless type(logging.Handler) is \u0027type\u0027"},{"line_number":62,"context_line":"        # (i.e. \u003e\u003d Python 2.7)."},{"line_number":63,"context_line":"        logging.Handler.__init__(self)"},{"line_number":64,"context_line":"        if use_syslog_rfc_format:"},{"line_number":65,"context_line":"            binary_name \u003d _get_binary_name()"},{"line_number":66,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_374b782c","line":63,"updated":"2014-12-02 16:35:42.000000000","message":"IIUC this line and the comment above existed because of Python 2.6 compatibility. But this has been dropped, right?","commit_id":"486187d379dcfb23f846f0b76f77ee7ba6a75edb"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"290ff78db33695beff43bbe5fc038c3323f5bd87","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                 use_syslog_rfc_format\u003dTrue):"},{"line_number":61,"context_line":"        # Do not use super() unless type(logging.Handler) is \u0027type\u0027"},{"line_number":62,"context_line":"        # (i.e. \u003e\u003d Python 2.7)."},{"line_number":63,"context_line":"        logging.Handler.__init__(self)"},{"line_number":64,"context_line":"        if use_syslog_rfc_format:"},{"line_number":65,"context_line":"            binary_name \u003d _get_binary_name()"},{"line_number":66,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_89724c48","line":63,"in_reply_to":"5a890539_374b782c","updated":"2014-12-02 17:00:36.000000000","message":"Nop, we keep compat with 2.6","commit_id":"486187d379dcfb23f846f0b76f77ee7ba6a75edb"},{"author":{"_account_id":6794,"name":"Simon Pasquier","email":"pasquier.simon@gmail.com","username":"simon-pasquier"},"change_message_id":"a7c9f9d0cd8a6a8af6812baef6bf5b8da7c5124f","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        syslog.openlog(binary_name, 0, facility)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def emit(self, record):"},{"line_number":71,"context_line":"        syslog.syslog(self.priority_map[record.levelname], record)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"class ColorHandler(logging.StreamHandler):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_d28de232","line":71,"range":{"start_line":71,"start_character":59,"end_line":71,"end_character":65},"updated":"2014-12-02 16:35:42.000000000","message":"Should be record.getMessage()","commit_id":"486187d379dcfb23f846f0b76f77ee7ba6a75edb"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"290ff78db33695beff43bbe5fc038c3323f5bd87","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        syslog.openlog(binary_name, 0, facility)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def emit(self, record):"},{"line_number":71,"context_line":"        syslog.syslog(self.priority_map[record.levelname], record)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"class ColorHandler(logging.StreamHandler):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_49ca2450","line":71,"in_reply_to":"5a890539_d28de232","updated":"2014-12-02 17:00:36.000000000","message":"Done","commit_id":"486187d379dcfb23f846f0b76f77ee7ba6a75edb"},{"author":{"_account_id":6794,"name":"Simon Pasquier","email":"pasquier.simon@gmail.com","username":"simon-pasquier"},"change_message_id":"dfc8b3a8088ce9785aefd64dcf47bd9d188f6614","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        \"NOTICE\": syslog.LOG_NOTICE,"},{"line_number":54,"context_line":"        \"PANIC\": syslog.LOG_EMERG,      # DEPRECATED"},{"line_number":55,"context_line":"        \"WARN\": syslog.LOG_WARNING,    # DEPRECATED"},{"line_number":56,"context_line":"        \"WARNING\": syslog.LOG_WARNING,"},{"line_number":57,"context_line":"    }"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def __init__(self, facility\u003dsyslog.LOG_USER,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_9c47eca2","line":56,"updated":"2014-12-02 17:28:12.000000000","message":"AFAIU there is no need to define so much items. Limiting to the ones supported [1] by the logging module should be fine.\n\n[1] https://docs.python.org/3.3/howto/logging.html#logging-levels","commit_id":"f119752626baaa892392fb77bc4c6e160f2f7964"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"830fea4ca8f9b560b1c3a0946ce873a6b2ad37b2","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        \"NOTICE\": syslog.LOG_NOTICE,"},{"line_number":54,"context_line":"        \"PANIC\": syslog.LOG_EMERG,      # DEPRECATED"},{"line_number":55,"context_line":"        \"WARN\": syslog.LOG_WARNING,    # DEPRECATED"},{"line_number":56,"context_line":"        \"WARNING\": syslog.LOG_WARNING,"},{"line_number":57,"context_line":"    }"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def __init__(self, facility\u003dsyslog.LOG_USER,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_cacd0b88","line":56,"in_reply_to":"5a890539_9c47eca2","updated":"2014-12-03 09:07:38.000000000","message":"Done","commit_id":"f119752626baaa892392fb77bc4c6e160f2f7964"},{"author":{"_account_id":6794,"name":"Simon Pasquier","email":"pasquier.simon@gmail.com","username":"simon-pasquier"},"change_message_id":"3b8fb56acc89db940573d010b2cbcc4bba037425","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"class OSSysLogHandler(logging.Handler):"},{"line_number":43,"context_line":"    # List stolen from logging.handlers.SyslogHandler"},{"line_number":44,"context_line":"    priority_map \u003d {"},{"line_number":45,"context_line":"        \"CRITICAL\": syslog.LOG_CRIT,"},{"line_number":46,"context_line":"        \"DEBUG\": syslog.LOG_DEBUG,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_76eec223","line":43,"updated":"2014-12-03 10:58:50.000000000","message":"This comment isn\u0027t relevant anymore.","commit_id":"a16d8be35754ed512c7a1c1597bd7150d60dad30"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"19185b21d483b66a2d12264ff3411168f79dcd20","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"class OSSysLogHandler(logging.Handler):"},{"line_number":43,"context_line":"    # List stolen from logging.handlers.SyslogHandler"},{"line_number":44,"context_line":"    priority_map \u003d {"},{"line_number":45,"context_line":"        \"CRITICAL\": syslog.LOG_CRIT,"},{"line_number":46,"context_line":"        \"DEBUG\": syslog.LOG_DEBUG,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_594f3292","line":43,"in_reply_to":"5a890539_76eec223","updated":"2014-12-03 14:05:36.000000000","message":"Done","commit_id":"a16d8be35754ed512c7a1c1597bd7150d60dad30"},{"author":{"_account_id":6794,"name":"Simon Pasquier","email":"pasquier.simon@gmail.com","username":"simon-pasquier"},"change_message_id":"3b8fb56acc89db940573d010b2cbcc4bba037425","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"class OSSysLogHandler(logging.Handler):"},{"line_number":43,"context_line":"    # List stolen from logging.handlers.SyslogHandler"},{"line_number":44,"context_line":"    priority_map \u003d {"},{"line_number":45,"context_line":"        \"CRITICAL\": syslog.LOG_CRIT,"},{"line_number":46,"context_line":"        \"DEBUG\": syslog.LOG_DEBUG,"},{"line_number":47,"context_line":"        \"ERROR\": syslog.LOG_ERR,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_36651aaf","line":44,"updated":"2014-12-03 10:58:50.000000000","message":"Update the variable name, these are not priorities but severity levels.","commit_id":"a16d8be35754ed512c7a1c1597bd7150d60dad30"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"19185b21d483b66a2d12264ff3411168f79dcd20","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"class OSSysLogHandler(logging.Handler):"},{"line_number":43,"context_line":"    # List stolen from logging.handlers.SyslogHandler"},{"line_number":44,"context_line":"    priority_map \u003d {"},{"line_number":45,"context_line":"        \"CRITICAL\": syslog.LOG_CRIT,"},{"line_number":46,"context_line":"        \"DEBUG\": syslog.LOG_DEBUG,"},{"line_number":47,"context_line":"        \"ERROR\": syslog.LOG_ERR,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_3931860b","line":44,"in_reply_to":"5a890539_36651aaf","updated":"2014-12-03 14:05:36.000000000","message":"Done","commit_id":"a16d8be35754ed512c7a1c1597bd7150d60dad30"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"c1206239855ad1ee34b53a2a1347d402e43d17b3","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            binary_name \u003d _get_binary_name()"},{"line_number":61,"context_line":"        else:"},{"line_number":62,"context_line":"            binary_name \u003d \"\""},{"line_number":63,"context_line":"        syslog.openlog(binary_name, 0, facility)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def emit(self, record):"},{"line_number":66,"context_line":"        syslog.syslog(self.priority_map[record.levelname],"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_36e0ba25","line":63,"updated":"2014-12-03 10:55:58.000000000","message":"Why do you omit \"msg \u003d self.binary_name + \u0027 \u0027 + msg\" part? Looks like a regression for logging.","commit_id":"a16d8be35754ed512c7a1c1597bd7150d60dad30"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"19185b21d483b66a2d12264ff3411168f79dcd20","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            binary_name \u003d _get_binary_name()"},{"line_number":61,"context_line":"        else:"},{"line_number":62,"context_line":"            binary_name \u003d \"\""},{"line_number":63,"context_line":"        syslog.openlog(binary_name, 0, facility)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def emit(self, record):"},{"line_number":66,"context_line":"        syslog.syslog(self.priority_map[record.levelname],"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_d92162b5","line":63,"in_reply_to":"5a890539_36e0ba25","updated":"2014-12-03 14:05:36.000000000","message":"Because it\u0027s included in openlog()","commit_id":"a16d8be35754ed512c7a1c1597bd7150d60dad30"}],"oslo/log/log.py":[{"author":{"_account_id":6794,"name":"Simon Pasquier","email":"pasquier.simon@gmail.com","username":"simon-pasquier"},"change_message_id":"a7c9f9d0cd8a6a8af6812baef6bf5b8da7c5124f","unresolved":false,"context_lines":[{"line_number":186,"context_line":""},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"def _find_facility_from_conf(conf):"},{"line_number":189,"context_line":"    facility \u003d getattr(syslog,"},{"line_number":190,"context_line":"                       conf.syslog_log_facility,"},{"line_number":191,"context_line":"                       None)"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_c6044380","line":189,"updated":"2014-12-02 16:35:42.000000000","message":"This may match anything in the syslog module like \u0027openlog\u0027, \u0027LOG_ERR\u0027, ...\n\nIt would be better to have a fixed list of supported values somewhere.","commit_id":"486187d379dcfb23f846f0b76f77ee7ba6a75edb"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"290ff78db33695beff43bbe5fc038c3323f5bd87","unresolved":false,"context_lines":[{"line_number":186,"context_line":""},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"def _find_facility_from_conf(conf):"},{"line_number":189,"context_line":"    facility \u003d getattr(syslog,"},{"line_number":190,"context_line":"                       conf.syslog_log_facility,"},{"line_number":191,"context_line":"                       None)"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_49db04ed","line":189,"in_reply_to":"5a890539_c6044380","updated":"2014-12-02 17:00:36.000000000","message":"Done","commit_id":"486187d379dcfb23f846f0b76f77ee7ba6a75edb"},{"author":{"_account_id":6794,"name":"Simon Pasquier","email":"pasquier.simon@gmail.com","username":"simon-pasquier"},"change_message_id":"a7c9f9d0cd8a6a8af6812baef6bf5b8da7c5124f","unresolved":false,"context_lines":[{"line_number":191,"context_line":"                       None)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    if facility is None:"},{"line_number":194,"context_line":"        valid_facilities \u003d logging.handlers.SysLogHandler.facility_names.keys()"},{"line_number":195,"context_line":"        consts \u003d [\u0027LOG_AUTH\u0027, \u0027LOG_AUTHPRIV\u0027, \u0027LOG_CRON\u0027, \u0027LOG_DAEMON\u0027,"},{"line_number":196,"context_line":"                  \u0027LOG_FTP\u0027, \u0027LOG_KERN\u0027, \u0027LOG_LPR\u0027, \u0027LOG_MAIL\u0027, \u0027LOG_NEWS\u0027,"},{"line_number":197,"context_line":"                  \u0027LOG_AUTH\u0027, \u0027LOG_SYSLOG\u0027, \u0027LOG_USER\u0027, \u0027LOG_UUCP\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_c679a3fd","line":194,"updated":"2014-12-02 16:35:42.000000000","message":"In my environment, this returns a list of values which are not valid for the syslog module:\n\n [\u0027ftp\u0027, \u0027daemon\u0027, \u0027uucp\u0027, \u0027security\u0027, \u0027local7\u0027, \u0027local4\u0027, \u0027lpr\u0027, \u0027auth\u0027, \u0027local0\u0027, \u0027cron\u0027, \u0027syslog\u0027, \u0027user\u0027, \u0027mail\u0027, \u0027local5\u0027, \u0027kern\u0027, \u0027news\u0027, \u0027local6\u0027, \u0027local1\u0027, \u0027authpriv\u0027, \u0027local3\u0027, \u0027local2\u0027]","commit_id":"486187d379dcfb23f846f0b76f77ee7ba6a75edb"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"290ff78db33695beff43bbe5fc038c3323f5bd87","unresolved":false,"context_lines":[{"line_number":191,"context_line":"                       None)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    if facility is None:"},{"line_number":194,"context_line":"        valid_facilities \u003d logging.handlers.SysLogHandler.facility_names.keys()"},{"line_number":195,"context_line":"        consts \u003d [\u0027LOG_AUTH\u0027, \u0027LOG_AUTHPRIV\u0027, \u0027LOG_CRON\u0027, \u0027LOG_DAEMON\u0027,"},{"line_number":196,"context_line":"                  \u0027LOG_FTP\u0027, \u0027LOG_KERN\u0027, \u0027LOG_LPR\u0027, \u0027LOG_MAIL\u0027, \u0027LOG_NEWS\u0027,"},{"line_number":197,"context_line":"                  \u0027LOG_AUTH\u0027, \u0027LOG_SYSLOG\u0027, \u0027LOG_USER\u0027, \u0027LOG_UUCP\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_498944c9","line":194,"in_reply_to":"5a890539_c679a3fd","updated":"2014-12-02 17:00:36.000000000","message":"Done","commit_id":"486187d379dcfb23f846f0b76f77ee7ba6a75edb"},{"author":{"_account_id":6794,"name":"Simon Pasquier","email":"pasquier.simon@gmail.com","username":"simon-pasquier"},"change_message_id":"a7c9f9d0cd8a6a8af6812baef6bf5b8da7c5124f","unresolved":false,"context_lines":[{"line_number":273,"context_line":"                facility\u003dfacility,"},{"line_number":274,"context_line":"                use_syslog_rfc_format\u003dconf.use_syslog_rfc_format)"},{"line_number":275,"context_line":"            log_root.addHandler(syslog)"},{"line_number":276,"context_line":"        except socket.error:"},{"line_number":277,"context_line":"            log_root.error(\u0027Unable to add syslog handler. Verify that syslog \u0027"},{"line_number":278,"context_line":"                           \u0027is running.\u0027)"},{"line_number":279,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_2cdb2bee","line":276,"updated":"2014-12-02 16:35:42.000000000","message":"This exception won\u0027t pop up anymore","commit_id":"486187d379dcfb23f846f0b76f77ee7ba6a75edb"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"290ff78db33695beff43bbe5fc038c3323f5bd87","unresolved":false,"context_lines":[{"line_number":273,"context_line":"                facility\u003dfacility,"},{"line_number":274,"context_line":"                use_syslog_rfc_format\u003dconf.use_syslog_rfc_format)"},{"line_number":275,"context_line":"            log_root.addHandler(syslog)"},{"line_number":276,"context_line":"        except socket.error:"},{"line_number":277,"context_line":"            log_root.error(\u0027Unable to add syslog handler. Verify that syslog \u0027"},{"line_number":278,"context_line":"                           \u0027is running.\u0027)"},{"line_number":279,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a890539_c9bc546f","line":276,"in_reply_to":"5a890539_2cdb2bee","updated":"2014-12-02 17:00:36.000000000","message":"Done","commit_id":"486187d379dcfb23f846f0b76f77ee7ba6a75edb"},{"author":{"_account_id":6794,"name":"Simon Pasquier","email":"pasquier.simon@gmail.com","username":"simon-pasquier"},"change_message_id":"dfc8b3a8088ce9785aefd64dcf47bd9d188f6614","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"def _find_facility_from_conf(conf):"},{"line_number":188,"context_line":"    valid_facilities \u003d [\u0027AUTH\u0027, \u0027AUTHPRIV\u0027, \u0027CRON\u0027, \u0027DAEMON\u0027,"},{"line_number":189,"context_line":"                        \u0027FTP\u0027, \u0027KERN\u0027, \u0027LPR\u0027, \u0027MAIL\u0027, \u0027NEWS\u0027,"},{"line_number":190,"context_line":"                        \u0027AUTH\u0027, \u0027SYSLOG\u0027, \u0027USER\u0027, \u0027UUCP\u0027,"},{"line_number":191,"context_line":"                        \u0027LOCAL0\u0027, \u0027LOCAL1\u0027, \u0027LOCAL2\u0027, \u0027LOCAL3\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_bcb668da","line":188,"updated":"2014-12-02 17:28:12.000000000","message":"The list should also contain \u0027LOG_*\u0027 entries because some people may have configured them.\n\nAlso according to Python 2.7 docs [1], the values supported by the syslog module are limited to: LOG_KERN, LOG_USER, LOG_MAIL, LOG_DAEMON, LOG_AUTH, LOG_LPR, LOG_NEWS, LOG_UUCP, LOG_CRON, LOG_SYSLOG and LOG_LOCAL0 to LOG_LOCAL7.\n\nThere was a bug [2] about the missing facilities which is fixed in 3.3.\n\n[1] https://docs.python.org/2/library/syslog.html\n[2] http://bugs.python.org/issue14416","commit_id":"f119752626baaa892392fb77bc4c6e160f2f7964"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"830fea4ca8f9b560b1c3a0946ce873a6b2ad37b2","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"def _find_facility_from_conf(conf):"},{"line_number":188,"context_line":"    valid_facilities \u003d [\u0027AUTH\u0027, \u0027AUTHPRIV\u0027, \u0027CRON\u0027, \u0027DAEMON\u0027,"},{"line_number":189,"context_line":"                        \u0027FTP\u0027, \u0027KERN\u0027, \u0027LPR\u0027, \u0027MAIL\u0027, \u0027NEWS\u0027,"},{"line_number":190,"context_line":"                        \u0027AUTH\u0027, \u0027SYSLOG\u0027, \u0027USER\u0027, \u0027UUCP\u0027,"},{"line_number":191,"context_line":"                        \u0027LOCAL0\u0027, \u0027LOCAL1\u0027, \u0027LOCAL2\u0027, \u0027LOCAL3\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_cac98b5b","line":188,"in_reply_to":"5a890539_bcb668da","updated":"2014-12-03 09:07:38.000000000","message":"Done","commit_id":"f119752626baaa892392fb77bc4c6e160f2f7964"},{"author":{"_account_id":6794,"name":"Simon Pasquier","email":"pasquier.simon@gmail.com","username":"simon-pasquier"},"change_message_id":"dfc8b3a8088ce9785aefd64dcf47bd9d188f6614","unresolved":false,"context_lines":[{"line_number":198,"context_line":"                        \u0027, \u0027.join(\"\u0027%s\u0027\" % fac"},{"line_number":199,"context_line":"                                  for fac in valid_facilities))"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    return getattr(syslog, \"LOG_\" + facility)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"def _setup_logging_from_conf(conf, project, version):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_3c26f816","line":201,"range":{"start_line":201,"start_character":11,"end_line":201,"end_character":26},"updated":"2014-12-02 17:28:12.000000000","message":"See comment above","commit_id":"f119752626baaa892392fb77bc4c6e160f2f7964"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"830fea4ca8f9b560b1c3a0946ce873a6b2ad37b2","unresolved":false,"context_lines":[{"line_number":198,"context_line":"                        \u0027, \u0027.join(\"\u0027%s\u0027\" % fac"},{"line_number":199,"context_line":"                                  for fac in valid_facilities))"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    return getattr(syslog, \"LOG_\" + facility)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"def _setup_logging_from_conf(conf, project, version):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_0a4ab3ac","line":201,"in_reply_to":"5a890539_3c26f816","updated":"2014-12-03 09:07:38.000000000","message":"Done","commit_id":"f119752626baaa892392fb77bc4c6e160f2f7964"},{"author":{"_account_id":6794,"name":"Simon Pasquier","email":"pasquier.simon@gmail.com","username":"simon-pasquier"},"change_message_id":"3b8fb56acc89db940573d010b2cbcc4bba037425","unresolved":false,"context_lines":[{"line_number":186,"context_line":""},{"line_number":187,"context_line":"def _find_facility_from_conf(conf):"},{"line_number":188,"context_line":"    valid_facilities \u003d [k for k in dir(syslog)"},{"line_number":189,"context_line":"                        if k.startswith(\"LOG_\") and type(k) is int]"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    facility \u003d conf.syslog_log_facility.upper()"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_1b1cc7c1","line":189,"updated":"2014-12-03 10:58:50.000000000","message":"This is going to catch LOG_ERROR, LOG_NOTICE, ... which aren\u0027t valid facilities.","commit_id":"a16d8be35754ed512c7a1c1597bd7150d60dad30"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"19185b21d483b66a2d12264ff3411168f79dcd20","unresolved":false,"context_lines":[{"line_number":186,"context_line":""},{"line_number":187,"context_line":"def _find_facility_from_conf(conf):"},{"line_number":188,"context_line":"    valid_facilities \u003d [k for k in dir(syslog)"},{"line_number":189,"context_line":"                        if k.startswith(\"LOG_\") and type(k) is int]"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    facility \u003d conf.syslog_log_facility.upper()"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_d43689e6","line":189,"in_reply_to":"5a890539_1b1cc7c1","updated":"2014-12-03 14:05:36.000000000","message":"Ah it\u0027s a mess – i keep mixing facility and severity, indeed… The thing is that some facilities are determined at compile time so it\u0027s a mess to know what\u0027s available and what\u0027s not.","commit_id":"a16d8be35754ed512c7a1c1597bd7150d60dad30"},{"author":{"_account_id":6983,"name":"YangLei","email":"iamhappg@aliyun.com","username":"YangLei"},"change_message_id":"dd91b615e30e0b4c4be76f3814d577cc33c11162","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        syslog \u003d handlers.OSSysLogHandler("},{"line_number":268,"context_line":"            facility\u003dfacility,"},{"line_number":269,"context_line":"            use_syslog_rfc_format\u003dconf.use_syslog_rfc_format)"},{"line_number":270,"context_line":"        log_root.addHandler(syslog)"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"_loggers \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_307a82ba","line":270,"updated":"2014-12-03 10:13:38.000000000","message":"This code block(line 263 --line 270) should be in front of line 230.\nthen This handler can have same settings with other handlers.","commit_id":"a16d8be35754ed512c7a1c1597bd7150d60dad30"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"19185b21d483b66a2d12264ff3411168f79dcd20","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        syslog \u003d handlers.OSSysLogHandler("},{"line_number":268,"context_line":"            facility\u003dfacility,"},{"line_number":269,"context_line":"            use_syslog_rfc_format\u003dconf.use_syslog_rfc_format)"},{"line_number":270,"context_line":"        log_root.addHandler(syslog)"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"_loggers \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_f4c38555","line":270,"in_reply_to":"5a890539_307a82ba","updated":"2014-12-03 14:05:36.000000000","message":"Maybe, but this is outside the scope of this patch AFAICT.","commit_id":"a16d8be35754ed512c7a1c1597bd7150d60dad30"},{"author":{"_account_id":6794,"name":"Simon Pasquier","email":"pasquier.simon@gmail.com","username":"simon-pasquier"},"change_message_id":"da73e3a733ec44e24b47ac7aeda9296c2b74d6a4","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        \"LOG_AUTHPRIV\", \"LOG_FTP\","},{"line_number":192,"context_line":"        \"LOG_LOCAL0\", \"LOG_LOCAL1\", \"LOG_LOCAL2\", \"LOG_LOCAL3\","},{"line_number":193,"context_line":"        \"LOG_LOCAL4\", \"LOG_LOCAL5\", \"LOG_LOCAL6\", \"LOG_LOCAL7\","},{"line_number":194,"context_line":"    ]"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    facility \u003d facility.upper()"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_bea713bb","line":194,"updated":"2014-12-03 15:43:06.000000000","message":"Again some of these facilities (eg LOG_AUTHPRIV, LOG_FTP) aren\u0027t available in the syslog module depending on the Python version. And when this function returns None, the instantiation of OSSysLogHandler will raise an exception...","commit_id":"e5a4557d1f4934fd5c80769257de35b1127ed487"},{"author":{"_account_id":6794,"name":"Simon Pasquier","email":"pasquier.simon@gmail.com","username":"simon-pasquier"},"change_message_id":"c6a9c3b210f270b32cb7dd3041060c0d9b10d004","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        \"LOG_AUTHPRIV\", \"LOG_FTP\","},{"line_number":192,"context_line":"        \"LOG_LOCAL0\", \"LOG_LOCAL1\", \"LOG_LOCAL2\", \"LOG_LOCAL3\","},{"line_number":193,"context_line":"        \"LOG_LOCAL4\", \"LOG_LOCAL5\", \"LOG_LOCAL6\", \"LOG_LOCAL7\","},{"line_number":194,"context_line":"    ]"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    facility \u003d facility.upper()"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_dbb14ce1","line":194,"in_reply_to":"5a890539_24add231","updated":"2014-12-03 16:39:54.000000000","message":"I would test it dynamically:\n\n  valid_facilities \u003d [i for i in [ \"LOG_KERN\", \"LOG_USER\", \"LOG_MAIL\", \"LOG_DAEMON\", \"LOG_AUTH\", \"LOG_SYSLOG\", \"LOG_LPR\", \"LOG_NEWS\", \"LOG_UUCP\", \"LOG_CRON\", \"LOG_AUTHPRIV\", \"LOG_FTP\", \"LOG_LOCAL0\", \"LOG_LOCAL1\", \"LOG_LOCAL2\", \"LOG_LOCAL3\",  \"LOG_LOCAL4\", \"LOG_LOCAL5\", \"LOG_LOCAL6\", \"LOG_LOCAL7\" ] if getattr(syslog,i, None)]","commit_id":"e5a4557d1f4934fd5c80769257de35b1127ed487"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"53ed065cf65868c6a085874beff7f25ee2efec2e","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        \"LOG_AUTHPRIV\", \"LOG_FTP\","},{"line_number":192,"context_line":"        \"LOG_LOCAL0\", \"LOG_LOCAL1\", \"LOG_LOCAL2\", \"LOG_LOCAL3\","},{"line_number":193,"context_line":"        \"LOG_LOCAL4\", \"LOG_LOCAL5\", \"LOG_LOCAL6\", \"LOG_LOCAL7\","},{"line_number":194,"context_line":"    ]"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    facility \u003d facility.upper()"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_24add231","line":194,"in_reply_to":"5a890539_bea713bb","updated":"2014-12-03 16:11:02.000000000","message":"But sometimes they are. So should we limit it to that? Don\u0027t think so.","commit_id":"e5a4557d1f4934fd5c80769257de35b1127ed487"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"07fed789b73b2639f0795b423a179ec2d15ce343","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        \"LOG_AUTHPRIV\", \"LOG_FTP\","},{"line_number":192,"context_line":"        \"LOG_LOCAL0\", \"LOG_LOCAL1\", \"LOG_LOCAL2\", \"LOG_LOCAL3\","},{"line_number":193,"context_line":"        \"LOG_LOCAL4\", \"LOG_LOCAL5\", \"LOG_LOCAL6\", \"LOG_LOCAL7\","},{"line_number":194,"context_line":"    ]"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    facility \u003d facility.upper()"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_4394da43","line":194,"in_reply_to":"5a890539_dbb14ce1","updated":"2015-01-05 09:40:08.000000000","message":"Done","commit_id":"e5a4557d1f4934fd5c80769257de35b1127ed487"}],"oslo_log/handlers.py":[{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"7e02964d2bdf70f64c6ecbabfe88f4e3d966eaa0","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        \"DEBUG\": syslog.LOG_DEBUG,"},{"line_number":68,"context_line":"        \"ERROR\": syslog.LOG_ERR,"},{"line_number":69,"context_line":"        \"INFO\": syslog.LOG_INFO,"},{"line_number":70,"context_line":"        \"NOTSET\": syslog.LOG_NOTICE,"},{"line_number":71,"context_line":"        \"WARNING\": syslog.LOG_WARNING,"},{"line_number":72,"context_line":"        \"WARN\": syslog.LOG_WARNING,"},{"line_number":73,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_7a4fb034","line":70,"updated":"2015-01-05 15:16:33.000000000","message":"is it NOTSET? I guess, it should be NOTICE","commit_id":"7191cb34fe97335401705d638a54cf627979003b"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"4f4f665f4e1e1ea3588547fb0af95f22e593e2c5","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        \"DEBUG\": syslog.LOG_DEBUG,"},{"line_number":68,"context_line":"        \"ERROR\": syslog.LOG_ERR,"},{"line_number":69,"context_line":"        \"INFO\": syslog.LOG_INFO,"},{"line_number":70,"context_line":"        \"NOTSET\": syslog.LOG_NOTICE,"},{"line_number":71,"context_line":"        \"WARNING\": syslog.LOG_WARNING,"},{"line_number":72,"context_line":"        \"WARN\": syslog.LOG_WARNING,"},{"line_number":73,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_498054bf","line":70,"in_reply_to":"3a961159_7a4fb034","updated":"2015-01-06 12:48:15.000000000","message":"Done","commit_id":"7191cb34fe97335401705d638a54cf627979003b"},{"author":{"_account_id":6983,"name":"YangLei","email":"iamhappg@aliyun.com","username":"YangLei"},"change_message_id":"726b3a0d351c347831c6945dc055331f99c3b2e4","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    }"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def __init__(self, facility\u003dsyslog.LOG_USER,"},{"line_number":76,"context_line":"                 use_syslog_rfc_format\u003dTrue):"},{"line_number":77,"context_line":"        # Do not use super() unless type(logging.Handler) is \u0027type\u0027"},{"line_number":78,"context_line":"        # (i.e. \u003e\u003d Python 2.7)."},{"line_number":79,"context_line":"        logging.Handler.__init__(self)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_8e5b2d53","line":76,"updated":"2015-01-06 03:44:59.000000000","message":"For the consistence,\nuse-syslog-rfc-format should be \"True\" rather than \"False\" by default in oslo_log/_options.py.","commit_id":"7191cb34fe97335401705d638a54cf627979003b"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"4f4f665f4e1e1ea3588547fb0af95f22e593e2c5","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    }"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def __init__(self, facility\u003dsyslog.LOG_USER,"},{"line_number":76,"context_line":"                 use_syslog_rfc_format\u003dTrue):"},{"line_number":77,"context_line":"        # Do not use super() unless type(logging.Handler) is \u0027type\u0027"},{"line_number":78,"context_line":"        # (i.e. \u003e\u003d Python 2.7)."},{"line_number":79,"context_line":"        logging.Handler.__init__(self)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_0961ec38","line":76,"in_reply_to":"3a961159_8e5b2d53","updated":"2015-01-06 12:48:15.000000000","message":"There\u0027s a note in options that we want to set it to True but later, so I\u0027m touching that here for now. It\u0027s not really related.","commit_id":"7191cb34fe97335401705d638a54cf627979003b"},{"author":{"_account_id":6794,"name":"Simon Pasquier","email":"pasquier.simon@gmail.com","username":"simon-pasquier"},"change_message_id":"4316c12ca59a862acdeaab8d7ff78b415fd15d16","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        \"DEBUG\": syslog.LOG_DEBUG,"},{"line_number":68,"context_line":"        \"ERROR\": syslog.LOG_ERR,"},{"line_number":69,"context_line":"        \"INFO\": syslog.LOG_INFO,"},{"line_number":70,"context_line":"        \"NOTICE\": syslog.LOG_NOTICE,"},{"line_number":71,"context_line":"        \"WARNING\": syslog.LOG_WARNING,"},{"line_number":72,"context_line":"        \"WARN\": syslog.LOG_WARNING,"},{"line_number":73,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a961159_3fe5f6a3","line":70,"updated":"2015-01-06 14:31:41.000000000","message":"Please remove, there is no NOTICE level in Python logging.","commit_id":"5039aab88f9cbe6074624076a1a373af8f93cf9e"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"f54d3bb347a2a7e49bd2690bbc513400d7f44da2","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        \"DEBUG\": syslog.LOG_DEBUG,"},{"line_number":68,"context_line":"        \"ERROR\": syslog.LOG_ERR,"},{"line_number":69,"context_line":"        \"INFO\": syslog.LOG_INFO,"},{"line_number":70,"context_line":"        \"NOTICE\": syslog.LOG_NOTICE,"},{"line_number":71,"context_line":"        \"WARNING\": syslog.LOG_WARNING,"},{"line_number":72,"context_line":"        \"WARN\": syslog.LOG_WARNING,"},{"line_number":73,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a961159_00c07d48","line":70,"in_reply_to":"3a961159_3fe5f6a3","updated":"2015-01-09 10:33:47.000000000","message":"Done","commit_id":"5039aab88f9cbe6074624076a1a373af8f93cf9e"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"d1069ddbac1efe83918b8c269392fc2e5aa84148","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    \"\"\"SysLogHandler following the RFC"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    .. deprecated:: 0.1"},{"line_number":43,"context_line":"       Use :class:`OSSysLogHandler` instead"},{"line_number":44,"context_line":"    \"\"\""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa81d914_14c2e358","line":43,"updated":"2015-01-30 18:12:18.000000000","message":"Should we log a deprecation warning, too?","commit_id":"f348e1653b8fd53225f0823d8e9aabcb45a44cfe"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"91c498bdfbdb4476beb94ef9f8a7117e474206b9","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    \"\"\"SysLogHandler following the RFC"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    .. deprecated:: 0.1"},{"line_number":43,"context_line":"       Use :class:`OSSysLogHandler` instead"},{"line_number":44,"context_line":"    \"\"\""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":10,"id":"da86d52c_421def0e","line":43,"in_reply_to":"fa81d914_14c2e358","updated":"2015-02-02 12:16:41.000000000","message":"warnings.warn?","commit_id":"f348e1653b8fd53225f0823d8e9aabcb45a44cfe"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"54d799374dfbd57fb7e2961b164de2c52f445d7a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"class RFCSysLogHandler(logging.handlers.SysLogHandler):"},{"line_number":40,"context_line":"    \"\"\"SysLogHandler following the RFC"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    .. deprecated:: 0.1"},{"line_number":43,"context_line":"       Use :class:`OSSysLogHandler` instead"},{"line_number":44,"context_line":"    \"\"\""},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a016987_18e5f5a6","line":42,"updated":"2015-05-21 19:17:59.000000000","message":"We discussed this patch at the summit, and I\u0027m convinced that it\u0027s OK to replace the class. Can we add a deprecation warning in the __init__ method of this class, though?","commit_id":"e1fbe92daf0e18004e5aa7f2c6689c48004eb11b"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"80f776f185eee58bed78f41ffefe75616a336cda","unresolved":false,"context_lines":[{"line_number":39,"context_line":"class RFCSysLogHandler(logging.handlers.SysLogHandler):"},{"line_number":40,"context_line":"    \"\"\"SysLogHandler following the RFC"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    .. deprecated:: 0.1"},{"line_number":43,"context_line":"       Use :class:`OSSysLogHandler` instead"},{"line_number":44,"context_line":"    \"\"\""},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a016987_de0862dc","line":42,"in_reply_to":"7a016987_18e5f5a6","updated":"2015-05-21 22:39:24.000000000","message":"Done","commit_id":"e1fbe92daf0e18004e5aa7f2c6689c48004eb11b"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"063dfa712aff094ae25f53b44acaab203d7076e4","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        syslog.openlog(binary_name, 0, facility)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def emit(self, record):"},{"line_number":86,"context_line":"        syslog.syslog(self.severity_map[record.levelname],"},{"line_number":87,"context_line":"                      record.getMessage())"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a016987_588dadd4","line":86,"updated":"2015-05-21 19:19:49.000000000","message":"There are some libraries that use custom log levels, can we please default a custom log level to debug?","commit_id":"e1fbe92daf0e18004e5aa7f2c6689c48004eb11b"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"80f776f185eee58bed78f41ffefe75616a336cda","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        syslog.openlog(binary_name, 0, facility)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def emit(self, record):"},{"line_number":86,"context_line":"        syslog.syslog(self.severity_map[record.levelname],"},{"line_number":87,"context_line":"                      record.getMessage())"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a016987_9e254a5d","line":86,"in_reply_to":"7a016987_588dadd4","updated":"2015-05-21 22:39:24.000000000","message":"Done","commit_id":"e1fbe92daf0e18004e5aa7f2c6689c48004eb11b"}],"oslo_log/log.py":[{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"7e02964d2bdf70f64c6ecbabfe88f4e3d966eaa0","unresolved":false,"context_lines":[{"line_number":265,"context_line":""},{"line_number":266,"context_line":"    if conf.use_syslog:"},{"line_number":267,"context_line":"        facility \u003d _find_facility(conf.syslog_log_facility)"},{"line_number":268,"context_line":"        # TODO(bogdando) use the format provided by RFCSysLogHandler"},{"line_number":269,"context_line":"        #   after existing syslog format deprecation in J"},{"line_number":270,"context_line":"        syslog \u003d handlers.OSSysLogHandler("},{"line_number":271,"context_line":"            facility\u003dfacility,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_9afe1c04","line":268,"updated":"2015-01-05 15:16:33.000000000","message":"Should it be updated to OSSysLogHandler as well?\n\nJFN: Originally, the idea was to deprecate the \u0027old\u0027 format of syslog message for J (-\u003eI). So use_syslog \u003d True should start providing the same format as we have now for use_syslog_rfc_format...","commit_id":"7191cb34fe97335401705d638a54cf627979003b"},{"author":{"_account_id":6794,"name":"Simon Pasquier","email":"pasquier.simon@gmail.com","username":"simon-pasquier"},"change_message_id":"4316c12ca59a862acdeaab8d7ff78b415fd15d16","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"def _find_facility(facility):"},{"line_number":184,"context_line":"    valid_facilities \u003d [f for f in"},{"line_number":185,"context_line":"                        [\"LOG_KERN\", \"LOG_USER\", \"LOG_MAIL\","},{"line_number":186,"context_line":"                         \"LOG_DAEMON\", \"LOG_AUTH\", \"LOG_SYSLOG\","},{"line_number":187,"context_line":"                         \"LOG_LPR\", \"LOG_NEWS\", \"LOG_UUCP\","}],"source_content_type":"text/x-python","patch_set":8,"id":"3a961159_9f098a33","line":184,"updated":"2015-01-06 14:31:41.000000000","message":"Suggestion: add a comment explaining that we need to check for log facilities at run-time because they aren\u0027t consistent across different Python versions.","commit_id":"5039aab88f9cbe6074624076a1a373af8f93cf9e"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"f54d3bb347a2a7e49bd2690bbc513400d7f44da2","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"def _find_facility(facility):"},{"line_number":184,"context_line":"    valid_facilities \u003d [f for f in"},{"line_number":185,"context_line":"                        [\"LOG_KERN\", \"LOG_USER\", \"LOG_MAIL\","},{"line_number":186,"context_line":"                         \"LOG_DAEMON\", \"LOG_AUTH\", \"LOG_SYSLOG\","},{"line_number":187,"context_line":"                         \"LOG_LPR\", \"LOG_NEWS\", \"LOG_UUCP\","}],"source_content_type":"text/x-python","patch_set":8,"id":"3a961159_20a2d9ad","line":184,"in_reply_to":"3a961159_9f098a33","updated":"2015-01-09 10:33:47.000000000","message":"Done","commit_id":"5039aab88f9cbe6074624076a1a373af8f93cf9e"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"46a5647e56f539c39cb56d022b8cf44199f25b55","unresolved":false,"context_lines":[{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    if conf.use_syslog:"},{"line_number":269,"context_line":"        facility \u003d _find_facility(conf.syslog_log_facility)"},{"line_number":270,"context_line":"        # TODO(bogdando) use the format provided by RFCSysLogHandler"},{"line_number":271,"context_line":"        #   after existing syslog format deprecation in J"},{"line_number":272,"context_line":"        syslog \u003d handlers.OSSysLogHandler("},{"line_number":273,"context_line":"            facility\u003dfacility,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a961159_56e40bdf","line":270,"updated":"2015-01-09 12:59:37.000000000","message":"I guess this comment is not relevant now, as we have  no more RFCSysLogHandler/SysLogHandler selector, and could be removed.","commit_id":"1a050483176b73b6e8af3b858aba1d8813bd5d54"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"5301e9d4b81ec0dd067d5f8ada610b4dcc7fdaec","unresolved":false,"context_lines":[{"line_number":269,"context_line":"        facility \u003d _find_facility(conf.syslog_log_facility)"},{"line_number":270,"context_line":"        # TODO(bogdando) use the format provided by RFCSysLogHandler"},{"line_number":271,"context_line":"        #   after existing syslog format deprecation in J"},{"line_number":272,"context_line":"        syslog \u003d handlers.OSSysLogHandler("},{"line_number":273,"context_line":"            facility\u003dfacility,"},{"line_number":274,"context_line":"            use_syslog_rfc_format\u003dconf.use_syslog_rfc_format)"},{"line_number":275,"context_line":"        log_root.addHandler(syslog)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a961159_02e4f33a","line":272,"updated":"2015-01-09 21:34:43.000000000","message":"Is replacing the default syslog handler guaranteed to be backwards-compatible in all cases? It seems safer to add a new option to control which handler is used, as ugly as that is.","commit_id":"1a050483176b73b6e8af3b858aba1d8813bd5d54"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"7d989d13843f7c7cb7a1fac12a8443f047ff68f4","unresolved":false,"context_lines":[{"line_number":269,"context_line":"        facility \u003d _find_facility(conf.syslog_log_facility)"},{"line_number":270,"context_line":"        # TODO(bogdando) use the format provided by RFCSysLogHandler"},{"line_number":271,"context_line":"        #   after existing syslog format deprecation in J"},{"line_number":272,"context_line":"        syslog \u003d handlers.OSSysLogHandler("},{"line_number":273,"context_line":"            facility\u003dfacility,"},{"line_number":274,"context_line":"            use_syslog_rfc_format\u003dconf.use_syslog_rfc_format)"},{"line_number":275,"context_line":"        log_root.addHandler(syslog)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a961159_53623ada","line":272,"in_reply_to":"3a961159_02e4f33a","updated":"2015-01-12 07:22:32.000000000","message":"The point of this patch is to avoid adding a new option, so if we add an option to use this one… that defects the purpose.\n\nTo summarize, this handler works by default and log to the correct default log device in a portable way (as it\u0027s using syslog(3) to log).\n\nThe old one does not have any possible portable valid default (so it does not work by default on some systems). OTOH it allows to log over the network to a remote syslog. Feature that can and is often/better achieved by forwarding the system syslog to another one actually, but I still mention it for completeness.","commit_id":"1a050483176b73b6e8af3b858aba1d8813bd5d54"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"d1069ddbac1efe83918b8c269392fc2e5aa84148","unresolved":false,"context_lines":[{"line_number":269,"context_line":"        facility \u003d _find_facility(conf.syslog_log_facility)"},{"line_number":270,"context_line":"        # TODO(bogdando) use the format provided by RFCSysLogHandler after"},{"line_number":271,"context_line":"        # existing syslog format deprecation in J"},{"line_number":272,"context_line":"        syslog \u003d handlers.OSSysLogHandler("},{"line_number":273,"context_line":"            facility\u003dfacility,"},{"line_number":274,"context_line":"            use_syslog_rfc_format\u003dconf.use_syslog_rfc_format)"},{"line_number":275,"context_line":"        log_root.addHandler(syslog)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa81d914_d4d68bf0","line":272,"updated":"2015-01-30 18:12:18.000000000","message":"We need to be careful that this isn\u0027t a backwards-incompatible change. Is the new handler guaranteed to work on all systems where the old class would, without the deployer having to make any changes to their system configuration (for example, to enable the daemon)?","commit_id":"f348e1653b8fd53225f0823d8e9aabcb45a44cfe"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"91c498bdfbdb4476beb94ef9f8a7117e474206b9","unresolved":false,"context_lines":[{"line_number":269,"context_line":"        facility \u003d _find_facility(conf.syslog_log_facility)"},{"line_number":270,"context_line":"        # TODO(bogdando) use the format provided by RFCSysLogHandler after"},{"line_number":271,"context_line":"        # existing syslog format deprecation in J"},{"line_number":272,"context_line":"        syslog \u003d handlers.OSSysLogHandler("},{"line_number":273,"context_line":"            facility\u003dfacility,"},{"line_number":274,"context_line":"            use_syslog_rfc_format\u003dconf.use_syslog_rfc_format)"},{"line_number":275,"context_line":"        log_root.addHandler(syslog)"}],"source_content_type":"text/x-python","patch_set":10,"id":"da86d52c_c2bf1fcf","line":272,"in_reply_to":"fa81d914_d4d68bf0","updated":"2015-02-02 12:16:41.000000000","message":"As far as I can tell, in theory, and in practice on my system it works. Devstack jobs don\u0027t use use_syslog so we can\u0027t really test on the CI.","commit_id":"f348e1653b8fd53225f0823d8e9aabcb45a44cfe"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"e511262bcdfc2e1bbffa13936fdb7fe4652f94d7","unresolved":false,"context_lines":[{"line_number":285,"context_line":"        facility \u003d _find_facility(conf.syslog_log_facility)"},{"line_number":286,"context_line":"        # TODO(bogdando) use the format provided by RFCSysLogHandler after"},{"line_number":287,"context_line":"        # existing syslog format deprecation in J"},{"line_number":288,"context_line":"        syslog \u003d handlers.OSSysLogHandler("},{"line_number":289,"context_line":"            facility\u003dfacility,"},{"line_number":290,"context_line":"            use_syslog_rfc_format\u003dconf.use_syslog_rfc_format)"},{"line_number":291,"context_line":"        log_root.addHandler(syslog)"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a80dd14_d97a3f23","line":288,"updated":"2015-03-06 22:43:26.000000000","message":"We talked about this today on IRC, but I\u0027m recording my comment here so I don\u0027t forget the next time I look at the review. :-)\n\nWe said that in order to preserve backwards compatibility for now, we would change this to look for /dev/log and if it is found use the old RFCSysLogHandler and if it is not found use the new handler. Then in the future we can deprecate the old log handler more aggressively, after we know that the new one does not cause performance issues because of eventlet not monkey patching the syslog() system call.","commit_id":"e1fbe92daf0e18004e5aa7f2c6689c48004eb11b"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"80f776f185eee58bed78f41ffefe75616a336cda","unresolved":false,"context_lines":[{"line_number":285,"context_line":"        facility \u003d _find_facility(conf.syslog_log_facility)"},{"line_number":286,"context_line":"        # TODO(bogdando) use the format provided by RFCSysLogHandler after"},{"line_number":287,"context_line":"        # existing syslog format deprecation in J"},{"line_number":288,"context_line":"        syslog \u003d handlers.OSSysLogHandler("},{"line_number":289,"context_line":"            facility\u003dfacility,"},{"line_number":290,"context_line":"            use_syslog_rfc_format\u003dconf.use_syslog_rfc_format)"},{"line_number":291,"context_line":"        log_root.addHandler(syslog)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a016987_fe143ee9","line":288,"in_reply_to":"9a80dd14_d97a3f23","updated":"2015-05-21 22:39:24.000000000","message":"Is this still what you want to do, considering that this will emit a deprecation warning since you asked to add one in RFCSysLogHandler?","commit_id":"e1fbe92daf0e18004e5aa7f2c6689c48004eb11b"}],"tests/unit/test_log.py":[{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"c1206239855ad1ee34b53a2a1347d402e43d17b3","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                         \u0027/some/path/foo-bar.log\u0027)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"class SysLogHandlersTestCase(BaseTestCase):"},{"line_number":184,"context_line":"    \"\"\"Test for standard and RFC compliant Syslog handlers.\"\"\""},{"line_number":185,"context_line":"    def setUp(self):"},{"line_number":186,"context_line":"        super(SysLogHandlersTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_96540ec7","side":"PARENT","line":183,"updated":"2014-12-03 10:55:58.000000000","message":"please add a tests for new OS syslog handler","commit_id":"3d754cfae9c3a5529f21238885b0bfce335fe10c"}]}
