Before user logging configuration can be loaded, pymin already can emit a
lot of logging information. This patch provides a way to customize the
logging configuration before the standard configuration framework take
place.
By default, it tries to read /etc/pymind/log.init.ini configuration file,
unless PYMIND_LOGINITCONF environment variable is set, in which case the
file specified by that variable it readed. If it fails to load the
configuration file, it use a reasonble default.
This is mostly useful for debugging/development purposes.
#!/usr/bin/env python
# vim: set encoding=utf-8 et sw=4 sts=4 :
#!/usr/bin/env python
# vim: set encoding=utf-8 et sw=4 sts=4 :
-import logging, logging.config ; log = logging.getLogger('pymind')
-# default logging configuration
-# (this is used before the user configuration file gets parsed)
-logging.basicConfig(format='%(levelname)s: %(message)s')
-
import os
import sys
from formencode import Invalid, validators as V
import os
import sys
from formencode import Invalid, validators as V
+import logging, logging.config ; log = logging.getLogger('pymind')
+# default logging configuration
+# (this is used before the user configuration file gets parsed)
+try:
+ # first we try to load a log config file
+ default = '/etc/pymin/log.init.ini'
+ logging.config.fileConfig(os.getenv('PYMIND_LOGINITCONF', default))
+except:
+ # then we try to load a reasonable default
+ logging.basicConfig(format='%(levelname)s: %(message)s')
+
from pymin.config import OptionGroup, Option, ConfigOption, ListOption
from pymin.config import load_config, options
from pymin.config import ConfigError, MissingSectionHeaderError, ParsingError
from pymin.config import OptionGroup, Option, ConfigOption, ListOption
from pymin.config import load_config, options
from pymin.config import ConfigError, MissingSectionHeaderError, ParsingError