footmark/pyami/config.py (90 lines of code) (raw):

# import os try: os.path.expanduser('~') expanduser = os.path.expanduser except (AttributeError, ImportError): # This is probably running on App Engine. expanduser = (lambda x: x) try: import simplejson as json except ImportError: import json # By default we use two locations for the footmark configurations, # /etc/footmark/ and ~/.footmark (which works on Windows and Unix). FootmarkConfigPath = '/etc/footmark/' FootmarkConfigLocations = [FootmarkConfigPath] UserConfigPath = os.path.join(expanduser('~'), '.footmark/') FootmarkConfigLocations.append(UserConfigPath) FootmarkLoggingConfig = '' logging_config = ''' [loggers] keys=root [handlers] keys=consoleHandler,fileHandler [formatters] keys=form01 [logger_root] level=NOTSET handlers=consoleHandler,fileHandler [handler_consoleHandler] class=StreamHandler level=DEBUG formatter=form01 args=() [handler_fileHandler] class=handlers.TimedRotatingFileHandler level=DEBUG formatter=form01 args=('footmark.log','D',1,7) [formatter_form01] format=%(asctime)s [%(levelname)s] %(filename)s, %(funcName)s[%(lineno)d]: %(message)s ''' # Default logging configurations. # By default we use location /var/footmark/ for the footmark logs. LoggingDict = '/var/log/footmark/' DefaultLoggingConfig = { 'version': 1, 'formatters': { 'default': { 'format': '%(asctime)s [%(levelname)s] %(filename)s, %(funcName)s[%(lineno)d]: %(message)s' } }, 'handlers': { 'console': { 'class': 'logging.StreamHandler', 'formatter': 'default', 'level': 'DEBUG', 'stream': 'ext://sys.stdout' }, 'file': { 'class': 'logging.handlers.TimedRotatingFileHandler', 'formatter': 'default', 'level': 'DEBUG', 'filename': LoggingDict + 'footmark.log', 'when': 'D', 'interval': 1, 'backupCount': 7 } }, "loggers": { 'footmark': { 'level': 'DEBUG', 'handlers': ['console', 'file'] } } } class Config(object): def __init__(self): pass def init_config(self): import platform sysstr = platform.system() if sysstr == "Linux": if not os.path.exists(FootmarkConfigLocations[0]): os.makedirs(FootmarkConfigLocations[0]) FootmarkLoggingConfig = FootmarkConfigLocations[0] + 'logging.conf' else: os.makedirs(FootmarkConfigLocations[1]) FootmarkLoggingConfig = FootmarkConfigLocations[1] + 'logging.conf' self.add_logging_config(FootmarkLoggingConfig) if not os.path.exists(LoggingDict): os.makedirs(LoggingDict) def add_logging_config(self, config_file): file_pb = open(config_file, 'wb') file_pb.write(logging_config) file_pb.close()