)]}'
{"openstack/utils.py":[{"author":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"change_message_id":"736c57cd775e8da2f712ce5af6b03a712d070fa2","unresolved":false,"context_lines":[{"line_number":16,"context_line":"CONSOLE_MESSAGE_FORMAT \u003d \u0027%(asctime)s %(levelname)s: %(name)s %(message)s\u0027"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"def enable_logging(debug\u003dFalse, path\u003dNone):"},{"line_number":20,"context_line":"    \"\"\"Enable logging of messages to sys.stderr"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    :param bool debug: ``True`` for debug logging (which includes"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_98e1732c","line":19,"updated":"2015-02-05 16:43:54.000000000","message":"Do we want to make the log format configurable here?\n\nFor the kind of tools/applications that SDKs go into, logging formats can be extremely important.\n\nI would actually go a step further and make it possible for the user to pass their own file to the fileConfig() function in some way. e.g.\n\n    def enable_logging(debug\u003dFalse, logging_config_file\u003dNone)\n        ...\n        if logging_config_file is None:\n            # simply console logging only\n        else:\n            # user can configure to their hearts content\n            logging.config.fileConfig(logging_config_file)\n\nOf course then the example would have to include an example logging config file.","commit_id":"a1749a44bbe2d56054498d2f57324fc6e99c2226"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"e7957bfa2ea72d6b476afa2c1a53a3242302c5cd","unresolved":false,"context_lines":[{"line_number":16,"context_line":"CONSOLE_MESSAGE_FORMAT \u003d \u0027%(asctime)s %(levelname)s: %(name)s %(message)s\u0027"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"def enable_logging(debug\u003dFalse, path\u003dNone):"},{"line_number":20,"context_line":"    \"\"\"Enable logging of messages to sys.stderr"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    :param bool debug: ``True`` for debug logging (which includes"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_23fcd8b7","line":19,"in_reply_to":"da86d52c_98e1732c","updated":"2015-02-05 16:55:58.000000000","message":"We should do as little configuration as possible here, and I\u0027m kind of re-thinking the file handler part, or any handlers, really. This is something that your own code should handle, and by calling enable_logging it allows our messages to show up in your log.\n\nI\u0027m going to move this to Workflow-1 because I need to play around with a bit more. The ideal solution, which would play into documentation, is probably that this function purely sets up the fact that we are able to write some messages, and then examples/common.py is where we create our logger, setup handlers, pick a format, etc, which is what our users will need to be doing in their application.","commit_id":"a1749a44bbe2d56054498d2f57324fc6e99c2226"},{"author":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"change_message_id":"736c57cd775e8da2f712ce5af6b03a712d070fa2","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    :param bool debug: ``True`` for debug logging (which includes"},{"line_number":23,"context_line":"                       HTTP requests and responses), or ``False``"},{"line_number":24,"context_line":"                       for warning messages."},{"line_number":25,"context_line":"    :param str path: If a *path* is specified, logging output will"},{"line_number":26,"context_line":"                     additionaly be written to that file. The path"},{"line_number":27,"context_line":"                     is passed to logging.FileHandler, which will"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_b54d629c","line":24,"updated":"2015-02-05 16:43:54.000000000","message":"Here \"debug logging\" and \"warning messages\" are used in the same sentence. Mixing terms within a single doc can be confusing to new users. It should either be \"debug logging\" and \"warning logging\" or \"debug messages\" and \"warning messages\"","commit_id":"a1749a44bbe2d56054498d2f57324fc6e99c2226"},{"author":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"change_message_id":"736c57cd775e8da2f712ce5af6b03a712d070fa2","unresolved":false,"context_lines":[{"line_number":23,"context_line":"                       HTTP requests and responses), or ``False``"},{"line_number":24,"context_line":"                       for warning messages."},{"line_number":25,"context_line":"    :param str path: If a *path* is specified, logging output will"},{"line_number":26,"context_line":"                     additionaly be written to that file. The path"},{"line_number":27,"context_line":"                     is passed to logging.FileHandler, which will"},{"line_number":28,"context_line":"                     append messages the file (and create it"},{"line_number":29,"context_line":"                     if needed). *Default: None*"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_95293e9d","line":26,"updated":"2015-02-05 16:43:54.000000000","message":"Spelling \"additionally\"\n\nAlso, in addition to what? That what should be explicitly stated.","commit_id":"a1749a44bbe2d56054498d2f57324fc6e99c2226"},{"author":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"change_message_id":"736c57cd775e8da2f712ce5af6b03a712d070fa2","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    root_logger \u003d logging.getLogger(\u0027\u0027)"},{"line_number":34,"context_line":"    formatter \u003d logging.Formatter(CONSOLE_MESSAGE_FORMAT)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    # Always send higher-level messages to the console via stderr"},{"line_number":37,"context_line":"    console \u003d logging.StreamHandler(sys.stderr)"},{"line_number":38,"context_line":"    console.setFormatter(formatter)"},{"line_number":39,"context_line":"    root_logger.addHandler(console)"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_383de7c4","line":36,"updated":"2015-02-05 16:43:54.000000000","message":"Is this comment really necessary? Is the line below doing something out of the ordinary? If so, the comment should say *why* the following code is doing something out of the ordinary.","commit_id":"a1749a44bbe2d56054498d2f57324fc6e99c2226"}]}
