)]}'
{"doc/source/admin/log_rotation.rst":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"d3eece2b389583f45d0f3ae4c5417d6bf97d0cf9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3f79a3b5_c9c8faa8","updated":"2018-11-15 09:41:09.000000000","message":"It\u0027s still not clear to me from this text and the help on the options how I would enable log rotation. Perhaps giving some example configurations would solve that? For example, how would I configure log rotation based on file size? How would I configure it to be time-based? How do I ensure that log rotation is completely disabled?","commit_id":"f3ae87d7f419e6960b37468dccad720d411abda6"},{"author":{"_account_id":29335,"name":"Daniel Vincze","email":"dvincze@cloudbasesolutions.com","username":"dvincze"},"change_message_id":"89ecea09052a1e129142db747c1ad196ba978081","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3f79a3b5_13061876","in_reply_to":"3f79a3b5_c9c8faa8","updated":"2018-11-15 15:19:01.000000000","message":"I\u0027ll add some examples in the next patch.","commit_id":"f3ae87d7f419e6960b37468dccad720d411abda6"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"94a6a03c0dbb258a1d81e793a3a930f7997fe85c","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    [DEFAULT]"},{"line_number":34,"context_line":"    log_rotation_type \u003d interval"},{"line_number":35,"context_line":"    log_rotate_interval \u003d 12"},{"line_number":36,"context_line":"    log_rotate_interval_type \u003d H"},{"line_number":37,"context_line":"    max_logfile_count \u003d 60"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3f79a3b5_3506b81b","line":36,"range":{"start_line":36,"start_character":31,"end_line":36,"end_character":32},"updated":"2018-11-29 20:52:12.000000000","message":"This is no longer a valid value?","commit_id":"22e8a347c8ba914cefa26df42dde632937259a79"},{"author":{"_account_id":29335,"name":"Daniel Vincze","email":"dvincze@cloudbasesolutions.com","username":"dvincze"},"change_message_id":"957750b4cb6d7042a767231db594023acf8df0a0","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    [DEFAULT]"},{"line_number":34,"context_line":"    log_rotation_type \u003d interval"},{"line_number":35,"context_line":"    log_rotate_interval \u003d 12"},{"line_number":36,"context_line":"    log_rotate_interval_type \u003d H"},{"line_number":37,"context_line":"    max_logfile_count \u003d 60"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3f79a3b5_f7a27d98","line":36,"range":{"start_line":36,"start_character":31,"end_line":36,"end_character":32},"in_reply_to":"3f79a3b5_3506b81b","updated":"2018-11-30 08:13:52.000000000","message":"No, it\u0027s not. Thanks for the heads-up!","commit_id":"22e8a347c8ba914cefa26df42dde632937259a79"}],"oslo_log/_options.py":[{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"1ebca7a6b4b857f27552b077d54b4a840872857d","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    cfg.BoolOpt(\u0027use_eventlog\u0027,"},{"line_number":112,"context_line":"                default\u003dFalse,"},{"line_number":113,"context_line":"                help\u003d\u0027Log output to Windows Event Log.\u0027),"},{"line_number":114,"context_line":"    cfg.IntOpt(\u0027log_rotate_interval\u0027,"},{"line_number":115,"context_line":"               help\u003d\u0027This option takes precedence over \"max_logfile_size\".\u0027),"},{"line_number":116,"context_line":"    cfg.StrOpt(\u0027log_rotate_interval_type\u0027,"},{"line_number":117,"context_line":"               default\u003d\u0027D\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_2456befa","line":114,"updated":"2018-11-09 21:34:26.000000000","message":"I think it would be good to be explicit about which of these options need to be set in order to turn on log file rotation. It looks like it needs to be a combination of max_logfile_count \u003e 0 and (log_rotate_interval or max_logfile_size).\n\nMaybe we should put these options in their own group so we can add a group help to explain that? It feels awkward to try to capture that in the separate option helps.\n\nI guess we don\u0027t have separate groups for any of the other log options, so maybe just something in the library documentation that people can refer to? A group would be nice since then the sample config files would have the documentation right there, but I could live with external docs too.","commit_id":"da2425a52c64f0005538b6a688ce69bb77ae0882"},{"author":{"_account_id":29335,"name":"Daniel Vincze","email":"dvincze@cloudbasesolutions.com","username":"dvincze"},"change_message_id":"d0538d983a138d5797fdde5fce0a99c6b1ea9d9f","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    cfg.BoolOpt(\u0027use_eventlog\u0027,"},{"line_number":112,"context_line":"                default\u003dFalse,"},{"line_number":113,"context_line":"                help\u003d\u0027Log output to Windows Event Log.\u0027),"},{"line_number":114,"context_line":"    cfg.IntOpt(\u0027log_rotate_interval\u0027,"},{"line_number":115,"context_line":"               help\u003d\u0027This option takes precedence over \"max_logfile_size\".\u0027),"},{"line_number":116,"context_line":"    cfg.StrOpt(\u0027log_rotate_interval_type\u0027,"},{"line_number":117,"context_line":"               default\u003d\u0027D\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_382d4590","line":114,"in_reply_to":"3f79a3b5_2456befa","updated":"2018-11-14 14:45:59.000000000","message":"We\u0027d rather not add a new config group to avoid making things confusing, but we added documentation in the new patch.","commit_id":"da2425a52c64f0005538b6a688ce69bb77ae0882"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"1ebca7a6b4b857f27552b077d54b4a840872857d","unresolved":false,"context_lines":[{"line_number":125,"context_line":"                    \u0027W - Weekday (set log_rotate_interval to 0 for Monday), \u0027"},{"line_number":126,"context_line":"                    \u0027midnight - Roll over at midnight.\u0027),"},{"line_number":127,"context_line":"    cfg.IntOpt(\u0027max_logfile_count\u0027,"},{"line_number":128,"context_line":"               help\u003d\u0027Maximum number of rotated log files. If set to 0, \u0027"},{"line_number":129,"context_line":"                    \u0027the log file will not be rotated.\u0027),"},{"line_number":130,"context_line":"    cfg.IntOpt(\u0027max_logfile_size\u0027,"},{"line_number":131,"context_line":"               help\u003d\u0027Log file maximum size in MB.\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_4493baa4","line":128,"updated":"2018-11-09 21:34:26.000000000","message":"Maybe set a default of 0 so it\u0027s explicit that this is disabled by default.","commit_id":"da2425a52c64f0005538b6a688ce69bb77ae0882"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"d3eece2b389583f45d0f3ae4c5417d6bf97d0cf9","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                    \u0027S - Seconds, \u0027"},{"line_number":125,"context_line":"                    \u0027M - Minutes, \u0027"},{"line_number":126,"context_line":"                    \u0027H - Hours, \u0027"},{"line_number":127,"context_line":"                    \u0027D - Days, \u0027"},{"line_number":128,"context_line":"                    \u0027W - Weekday (set log_rotate_interval to 0 for Monday), \u0027"},{"line_number":129,"context_line":"                    \u0027midnight - Roll over at midnight.\u0027),"},{"line_number":130,"context_line":"    cfg.IntOpt(\u0027max_logfile_count\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_e9e05630","line":127,"updated":"2018-11-15 09:41:09.000000000","message":"When does the log rotate if I specify days? Does it depend on when the service is started? What is the difference between \"days\" and \"midnight\"?","commit_id":"f3ae87d7f419e6960b37468dccad720d411abda6"},{"author":{"_account_id":29335,"name":"Daniel Vincze","email":"dvincze@cloudbasesolutions.com","username":"dvincze"},"change_message_id":"89ecea09052a1e129142db747c1ad196ba978081","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                    \u0027S - Seconds, \u0027"},{"line_number":125,"context_line":"                    \u0027M - Minutes, \u0027"},{"line_number":126,"context_line":"                    \u0027H - Hours, \u0027"},{"line_number":127,"context_line":"                    \u0027D - Days, \u0027"},{"line_number":128,"context_line":"                    \u0027W - Weekday (set log_rotate_interval to 0 for Monday), \u0027"},{"line_number":129,"context_line":"                    \u0027midnight - Roll over at midnight.\u0027),"},{"line_number":130,"context_line":"    cfg.IntOpt(\u0027max_logfile_count\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_f019128b","line":127,"in_reply_to":"3f79a3b5_e9e05630","updated":"2018-11-15 15:19:01.000000000","message":"If \"days\" option(or any other) is specified, the handler computes the number of seconds to wait until rotate, and after those seconds pass, it rotates. Unfortunately, it depends on when the service is started, because the builtin module handler checks the time when the logfile was last modified, and not when it was created (I still don\u0027t understand why, and the bad part is that the logfile will always be modified when the service starts). As I was saying, the handler computes the number of seconds to wait for a rollover. So if you set days, it will wait full 24 hours to do a rollover. If you set midnight, the rollover will take place at 00:00 (local time).","commit_id":"f3ae87d7f419e6960b37468dccad720d411abda6"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"d3eece2b389583f45d0f3ae4c5417d6bf97d0cf9","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                    \u0027H - Hours, \u0027"},{"line_number":127,"context_line":"                    \u0027D - Days, \u0027"},{"line_number":128,"context_line":"                    \u0027W - Weekday (set log_rotate_interval to 0 for Monday), \u0027"},{"line_number":129,"context_line":"                    \u0027midnight - Roll over at midnight.\u0027),"},{"line_number":130,"context_line":"    cfg.IntOpt(\u0027max_logfile_count\u0027,"},{"line_number":131,"context_line":"               help\u003d\u0027Maximum number of rotated log files. If set to 0, \u0027"},{"line_number":132,"context_line":"                    \u0027the log file will not be rotated.\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_a9757e88","line":129,"updated":"2018-11-15 09:41:09.000000000","message":"It is possible to give the choices as a list of 2-tuples with a value and a description. Doing that causes the help to be formatted more cleanly, so let\u0027s do that for this new option instead of trying to format it by hand in the help string.","commit_id":"f3ae87d7f419e6960b37468dccad720d411abda6"},{"author":{"_account_id":29335,"name":"Daniel Vincze","email":"dvincze@cloudbasesolutions.com","username":"dvincze"},"change_message_id":"89ecea09052a1e129142db747c1ad196ba978081","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                    \u0027H - Hours, \u0027"},{"line_number":127,"context_line":"                    \u0027D - Days, \u0027"},{"line_number":128,"context_line":"                    \u0027W - Weekday (set log_rotate_interval to 0 for Monday), \u0027"},{"line_number":129,"context_line":"                    \u0027midnight - Roll over at midnight.\u0027),"},{"line_number":130,"context_line":"    cfg.IntOpt(\u0027max_logfile_count\u0027,"},{"line_number":131,"context_line":"               help\u003d\u0027Maximum number of rotated log files. If set to 0, \u0027"},{"line_number":132,"context_line":"                    \u0027the log file will not be rotated.\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_137b78f3","line":129,"in_reply_to":"3f79a3b5_a9757e88","updated":"2018-11-15 15:19:01.000000000","message":"Done","commit_id":"f3ae87d7f419e6960b37468dccad720d411abda6"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"d3eece2b389583f45d0f3ae4c5417d6bf97d0cf9","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                    \u0027midnight - Roll over at midnight.\u0027),"},{"line_number":130,"context_line":"    cfg.IntOpt(\u0027max_logfile_count\u0027,"},{"line_number":131,"context_line":"               help\u003d\u0027Maximum number of rotated log files. If set to 0, \u0027"},{"line_number":132,"context_line":"                    \u0027the log file will not be rotated.\u0027),"},{"line_number":133,"context_line":"    cfg.IntOpt(\u0027max_logfile_size\u0027,"},{"line_number":134,"context_line":"               help\u003d\u0027Log file maximum size in MB. This option is ignored if \u0027"},{"line_number":135,"context_line":"                    \u0027\"max_logfile_count\" is not set or if \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_09e6f24a","line":132,"updated":"2018-11-15 09:41:09.000000000","message":"I would expect 0 to mean there is no maximum number of kept files (implying that cleaning up old files is left up to some external service).","commit_id":"f3ae87d7f419e6960b37468dccad720d411abda6"},{"author":{"_account_id":29335,"name":"Daniel Vincze","email":"dvincze@cloudbasesolutions.com","username":"dvincze"},"change_message_id":"89ecea09052a1e129142db747c1ad196ba978081","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                    \u0027midnight - Roll over at midnight.\u0027),"},{"line_number":130,"context_line":"    cfg.IntOpt(\u0027max_logfile_count\u0027,"},{"line_number":131,"context_line":"               help\u003d\u0027Maximum number of rotated log files. If set to 0, \u0027"},{"line_number":132,"context_line":"                    \u0027the log file will not be rotated.\u0027),"},{"line_number":133,"context_line":"    cfg.IntOpt(\u0027max_logfile_size\u0027,"},{"line_number":134,"context_line":"               help\u003d\u0027Log file maximum size in MB. This option is ignored if \u0027"},{"line_number":135,"context_line":"                    \u0027\"max_logfile_count\" is not set or if \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_5371f012","line":132,"in_reply_to":"3f79a3b5_09e6f24a","updated":"2018-11-15 15:19:01.000000000","message":"Done","commit_id":"f3ae87d7f419e6960b37468dccad720d411abda6"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"40e5e58ef8ae23e3cb70ce43344a901e9a72a5d4","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                    \u0027midnight - Roll over at midnight.\u0027),"},{"line_number":130,"context_line":"    cfg.IntOpt(\u0027max_logfile_count\u0027,"},{"line_number":131,"context_line":"               help\u003d\u0027Maximum number of rotated log files. If set to 0, \u0027"},{"line_number":132,"context_line":"                    \u0027the log file will not be rotated.\u0027),"},{"line_number":133,"context_line":"    cfg.IntOpt(\u0027max_logfile_size\u0027,"},{"line_number":134,"context_line":"               help\u003d\u0027Log file maximum size in MB. This option is ignored if \u0027"},{"line_number":135,"context_line":"                    \u0027\"max_logfile_count\" is not set or if \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_043ed0e2","line":132,"in_reply_to":"3f79a3b5_09e6f24a","updated":"2018-11-15 18:32:42.000000000","message":"We\u0027re just exposing some of the parameters that the built-in handlers accept. Indeed, this would make much more sense.\n\nOne approach would be to just pass 1e+1000 to the handler when \"max_logfile_count\" is set to 0, but it may look like a hack.","commit_id":"f3ae87d7f419e6960b37468dccad720d411abda6"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"42877bb006b067a217fcb040ac8fe94f5a33d65b","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    cfg.StrOpt(\u0027log_rotate_interval_type\u0027,"},{"line_number":120,"context_line":"               choices\u003d[(\u0027S\u0027, \u0027Seconds\u0027), (\u0027M\u0027, \u0027Minutes\u0027), (\u0027H\u0027, \u0027Hours\u0027),"},{"line_number":121,"context_line":"                        (\u0027D\u0027, \u0027Days\u0027), (\u0027W\u0027, \u0027Weekday\u0027),"},{"line_number":122,"context_line":"                        (\u0027midnight\u0027, \u0027Roll over at midnight.\u0027)],"},{"line_number":123,"context_line":"               ignore_case\u003dTrue,"},{"line_number":124,"context_line":"               help\u003d\u0027Rotation interval type. The time of the last file \u0027"},{"line_number":125,"context_line":"                    \u0027change (or the time when the service was started) is \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_5bd30903","line":122,"updated":"2018-11-20 17:23:16.000000000","message":"It looks like this is just exposing the underlying settings used by the TimedRotaingFileHandler (https://docs.python.org/3/library/logging.handlers.html#logging.handlers.TimedRotatingFileHandler).\n\nThat configuration API isn\u0027t very usable. I think we can do better by spelling out the words used in the choices and then mapping them to the values needed by the underlying handler.\n\nI think we should also use a log_rotation_type option to more explicitly enable and disable rotation. That would let operators cleanly change the rotation behavior without having to potentially comment out multiple configuration settings to do it. I think we have 3 choices for the log_rotation_type:\n\n  none (no rotation, the default)\n  interval (enables the interval options)\n  size (enables the size options)\n\nThat would allow us to provide reasonable defaults for both log_rotate_interval_type (daily) and log_rotate_size_mb (100?) and maybe even max_logfile_count.","commit_id":"e5261c0d4de2d6354e50c501f73fe8298af06128"},{"author":{"_account_id":29335,"name":"Daniel Vincze","email":"dvincze@cloudbasesolutions.com","username":"dvincze"},"change_message_id":"70a38db85933368be8f48f1b1eb218aaf2d82dac","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    cfg.StrOpt(\u0027log_rotate_interval_type\u0027,"},{"line_number":120,"context_line":"               choices\u003d[(\u0027S\u0027, \u0027Seconds\u0027), (\u0027M\u0027, \u0027Minutes\u0027), (\u0027H\u0027, \u0027Hours\u0027),"},{"line_number":121,"context_line":"                        (\u0027D\u0027, \u0027Days\u0027), (\u0027W\u0027, \u0027Weekday\u0027),"},{"line_number":122,"context_line":"                        (\u0027midnight\u0027, \u0027Roll over at midnight.\u0027)],"},{"line_number":123,"context_line":"               ignore_case\u003dTrue,"},{"line_number":124,"context_line":"               help\u003d\u0027Rotation interval type. The time of the last file \u0027"},{"line_number":125,"context_line":"                    \u0027change (or the time when the service was started) is \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_8c6c099f","line":122,"in_reply_to":"3f79a3b5_5bd30903","updated":"2018-11-20 19:46:56.000000000","message":"Done","commit_id":"e5261c0d4de2d6354e50c501f73fe8298af06128"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"67974e816cf61ff70e4c20ce004fdc407c044846","unresolved":false,"context_lines":[{"line_number":118,"context_line":"                    \u0027to \"interval\".\u0027),"},{"line_number":119,"context_line":"    cfg.StrOpt(\u0027log_rotate_interval_type\u0027,"},{"line_number":120,"context_line":"               choices\u003d[\u0027Seconds\u0027, \u0027Minutes\u0027, \u0027Hours\u0027, \u0027Days\u0027, \u0027Weekday\u0027,"},{"line_number":121,"context_line":"                        \u0027Midnight\u0027],"},{"line_number":122,"context_line":"               ignore_case\u003dTrue,"},{"line_number":123,"context_line":"               default\u003d\u0027days\u0027,"},{"line_number":124,"context_line":"               help\u003d\u0027Rotation interval type. The time of the last file \u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_8b35be45","line":121,"updated":"2018-11-21 16:27:51.000000000","message":"In this draft we lost the extra documentation about these choices. That can come back in as a follow-up patch if there\u0027s no other reason to update this patch.","commit_id":"22e8a347c8ba914cefa26df42dde632937259a79"},{"author":{"_account_id":29335,"name":"Daniel Vincze","email":"dvincze@cloudbasesolutions.com","username":"dvincze"},"change_message_id":"37fd698dd8346551f5905d920413f47b867193c5","unresolved":false,"context_lines":[{"line_number":118,"context_line":"                    \u0027to \"interval\".\u0027),"},{"line_number":119,"context_line":"    cfg.StrOpt(\u0027log_rotate_interval_type\u0027,"},{"line_number":120,"context_line":"               choices\u003d[\u0027Seconds\u0027, \u0027Minutes\u0027, \u0027Hours\u0027, \u0027Days\u0027, \u0027Weekday\u0027,"},{"line_number":121,"context_line":"                        \u0027Midnight\u0027],"},{"line_number":122,"context_line":"               ignore_case\u003dTrue,"},{"line_number":123,"context_line":"               default\u003d\u0027days\u0027,"},{"line_number":124,"context_line":"               help\u003d\u0027Rotation interval type. The time of the last file \u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_25892a24","line":121,"in_reply_to":"3f79a3b5_8b35be45","updated":"2018-11-22 10:15:20.000000000","message":"Now that we\u0027re spelling out the choices, they seem self explanatory. If really needed, I can add some helpstrings in the next comment.","commit_id":"22e8a347c8ba914cefa26df42dde632937259a79"}],"oslo_log/log.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"67974e816cf61ff70e4c20ce004fdc407c044846","unresolved":false,"context_lines":[{"line_number":364,"context_line":"            when \u003d conf.log_rotate_interval_type.lower()"},{"line_number":365,"context_line":"            interval_type \u003d LOG_ROTATE_INTERVAL_MAPPING[when]"},{"line_number":366,"context_line":"            # When weekday is configured, \"when\" has to be a value between"},{"line_number":367,"context_line":"            # \u0027w0\u0027-\u0027w6\u0027 (w0 for Monday, w1 for Tuesday, and so on)\u0027"},{"line_number":368,"context_line":"            if interval_type \u003d\u003d \u0027w\u0027:"},{"line_number":369,"context_line":"                interval_type \u003d interval_type + str(conf.log_rotate_interval)"},{"line_number":370,"context_line":"            filelog \u003d file_handler(logpath,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_eb24721c","line":367,"updated":"2018-11-21 16:27:51.000000000","message":"Do we need to check for values of log_rotate_interval \u003c 0 or \u003e 6 and either force them into range or report the error and die?","commit_id":"22e8a347c8ba914cefa26df42dde632937259a79"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"94a6a03c0dbb258a1d81e793a3a930f7997fe85c","unresolved":false,"context_lines":[{"line_number":364,"context_line":"            when \u003d conf.log_rotate_interval_type.lower()"},{"line_number":365,"context_line":"            interval_type \u003d LOG_ROTATE_INTERVAL_MAPPING[when]"},{"line_number":366,"context_line":"            # When weekday is configured, \"when\" has to be a value between"},{"line_number":367,"context_line":"            # \u0027w0\u0027-\u0027w6\u0027 (w0 for Monday, w1 for Tuesday, and so on)\u0027"},{"line_number":368,"context_line":"            if interval_type \u003d\u003d \u0027w\u0027:"},{"line_number":369,"context_line":"                interval_type \u003d interval_type + str(conf.log_rotate_interval)"},{"line_number":370,"context_line":"            filelog \u003d file_handler(logpath,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_55e9f415","line":367,"in_reply_to":"3f79a3b5_a5c69a68","updated":"2018-11-29 20:52:12.000000000","message":"Might be nice to document the behavior of log_rotate_interval in this case since I\u0027m not sure it\u0027s obvious.","commit_id":"22e8a347c8ba914cefa26df42dde632937259a79"},{"author":{"_account_id":29335,"name":"Daniel Vincze","email":"dvincze@cloudbasesolutions.com","username":"dvincze"},"change_message_id":"37fd698dd8346551f5905d920413f47b867193c5","unresolved":false,"context_lines":[{"line_number":364,"context_line":"            when \u003d conf.log_rotate_interval_type.lower()"},{"line_number":365,"context_line":"            interval_type \u003d LOG_ROTATE_INTERVAL_MAPPING[when]"},{"line_number":366,"context_line":"            # When weekday is configured, \"when\" has to be a value between"},{"line_number":367,"context_line":"            # \u0027w0\u0027-\u0027w6\u0027 (w0 for Monday, w1 for Tuesday, and so on)\u0027"},{"line_number":368,"context_line":"            if interval_type \u003d\u003d \u0027w\u0027:"},{"line_number":369,"context_line":"                interval_type \u003d interval_type + str(conf.log_rotate_interval)"},{"line_number":370,"context_line":"            filelog \u003d file_handler(logpath,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_a5c69a68","line":367,"in_reply_to":"3f79a3b5_eb24721c","updated":"2018-11-22 10:15:20.000000000","message":"If you misconfigure the interval, it already raises a ValueError, so no need for another check.","commit_id":"22e8a347c8ba914cefa26df42dde632937259a79"}],"releasenotes/notes/log-rotation-595f8232cd987a6d.yaml":[{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"94a6a03c0dbb258a1d81e793a3a930f7997fe85c","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    * ``log_rotate_interval``"},{"line_number":7,"context_line":"    * ``log_rotate_interval_type``"},{"line_number":8,"context_line":"    * ``max_logfile_count``"},{"line_number":9,"context_line":"    * ``max_logfile_size_mb``"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"3f79a3b5_f5ab60d1","line":9,"updated":"2018-11-29 20:52:12.000000000","message":"+ log_rotation_type","commit_id":"22e8a347c8ba914cefa26df42dde632937259a79"}]}
