diff --git a/mylib/config.py b/mylib/config.py index f420ca7..0b4a39e 100644 --- a/mylib/config.py +++ b/mylib/config.py @@ -682,8 +682,66 @@ class Config: # pylint: disable=too-many-instance-attributes self.config_file_env_variable = config_file_env_variable self.default_config_dirpath = default_config_dirpath self.default_config_filename = default_config_filename + self.add_logging_sections() self._init_config_parser() + def add_logging_sections(self): + """Add logging sections""" + console_section = self.add_section("console", comment="Console logging", order=998) + console_section.add_option( + BooleanOption, + "enabled", + default=False, + arg="--console", + short_arg="-C", + comment="Enable/disable console log", + ) + console_section.add_option( + BooleanOption, + "force_stderr", + default=False, + arg="--console-stderr", + comment="Force console log on stderr", + ) + console_section.add_option( + StringOption, + "log_format", + default=DEFAULT_CONSOLE_LOG_FORMAT, + arg="--console-log-format", + comment="Console log format", + ) + console_section.add_option( + StringOption, + "log_level", + comment=( + "Console log level limit : by default, all logged messages (according to main log " + "level) will be logged to the console, but you can set a minimal level if you " + # logging.getLevelNamesMapping() not available in python 3.9 + # pylint: disable=protected-access + f"want. Possible values: {', '.join(logging._nameToLevel)}." + ), + ) + + logfile_section = self.add_section("logfile", comment="Logging file", order=999) + logfile_section.add_option(StringOption, "path", comment="File log path") + logfile_section.add_option( + StringOption, + "format", + default=DEFAULT_FILELOG_FORMAT, + comment="File log format", + ) + logfile_section.add_option( + StringOption, + "level", + comment=( + "File log level limit : by default, all logged messages (according to main log " + "level) will be logged to the log file, but you can set a minimal level if you " + # logging.getLevelNamesMapping() not available in python 3.9 + # pylint: disable=protected-access + f"want. Possible values: {', '.join(logging._nameToLevel)}." + ), + ) + def add_section(self, name, loaded_callback=None, **kwargs): """ Add section @@ -882,61 +940,6 @@ class Config: # pylint: disable=too-many-instance-attributes "-v", "--verbose", action="store_true", help="Show verbose messages" ) - console_section = self.add_section("console", comment="Console logging") - console_section.add_option( - BooleanOption, - "enabled", - default=False, - arg="--console", - short_arg="-C", - comment="Enable/disable console log", - ) - console_section.add_option( - BooleanOption, - "force_stderr", - default=False, - arg="--console-stderr", - comment="Force console log on stderr", - ) - console_section.add_option( - StringOption, - "log_format", - default=DEFAULT_CONSOLE_LOG_FORMAT, - arg="--console-log-format", - comment="Console log format", - ) - console_section.add_option( - StringOption, - "log_level", - comment=( - "Console log level limit : by default, all logged messages (according to main log " - "level) will be logged to the console, but you can set a minimal level if you " - # logging.getLevelNamesMapping() not available in python 3.9 - # pylint: disable=protected-access - f"want. Possible values: {', '.join(logging._nameToLevel)}." - ), - ) - - logfile_section = self.add_section("logfile", comment="Logging file") - logfile_section.add_option(StringOption, "path", comment="File log path") - logfile_section.add_option( - StringOption, - "format", - default=DEFAULT_FILELOG_FORMAT, - comment="File log format", - ) - logfile_section.add_option( - StringOption, - "level", - comment=( - "File log level limit : by default, all logged messages (according to main log " - "level) will be logged to the log file, but you can set a minimal level if you " - # logging.getLevelNamesMapping() not available in python 3.9 - # pylint: disable=protected-access - f"want. Possible values: {', '.join(logging._nameToLevel)}." - ), - ) - self.add_options_to_parser(self.options_parser) return self.options_parser