Changes for improved logging.
This commit is contained in:
parent
e10db69a9c
commit
2da6e44a75
|
@ -58,29 +58,29 @@ def get_exec_path():
|
|||
return os.path.dirname(sys.path[0])
|
||||
|
||||
def get_config(file_name, fallback = True):
|
||||
"""Looks in cwd and in self.default_config_path for a config file."""
|
||||
config_path = os.path.join(get_exec_path(), file_name)
|
||||
if os.path.exists(config_path): # there is a file in the cwd
|
||||
return config_path # so we use it
|
||||
else: # no file in the cwd, look where it should be in the first place
|
||||
config_path = os.path.join(get_default_config_path(), file_name)
|
||||
if os.path.exists(config_path):
|
||||
"""Looks in exec dir and in self.default_config_path for a config file."""
|
||||
config_path = os.path.join(DIR_SELF, file_name) # look in exec dir
|
||||
if os.path.exists(config_path) and os.path.isfile(config_path):
|
||||
return config_path # there is a file in the exec dir so we use it
|
||||
else:
|
||||
config_path = os.path.join(DIR_CONFIG, file_name) # look in config dir
|
||||
if os.path.exists(config_path) and os.path.isfile(config_path):
|
||||
return config_path
|
||||
|
||||
# No file found
|
||||
if not fallback:
|
||||
return False
|
||||
|
||||
# OK, fall back to the .example file, should be in the start dir
|
||||
if os.path.exists(file_name + ".example"):
|
||||
# OK, fall back to the .example file, should be in the exec dir
|
||||
if os.path.exists(os.path.join(DIR_SELF, file_name + ".example")):
|
||||
try:
|
||||
shutil.copyfile(file_name + ".example", file_name)
|
||||
shutil.copyfile(os.path.join(DIR_SELF, file_name + ".example"), os.path.join(DIR_CONFIG, file_name))
|
||||
print "No %s found, using %s.example.\n" % (file_name, file_name)
|
||||
print "A %s file has been created. You will probably have to edit it." % file_name
|
||||
sys.stderr.write("No %s found, using %s.example.\n" % (file_name, file_name) )
|
||||
print "A %s file has been created. You will probably have to edit it." % os.path.join(DIR_CONFIG, file_name)
|
||||
log.error("No %s found, using %s.example.\n" % (file_name, file_name) )
|
||||
except:
|
||||
print "No %s found, cannot fall back. Exiting.\n" % file_name
|
||||
sys.stderr.write("No %s found, cannot fall back. Exiting.\n" % file_name)
|
||||
log.critical("No %s found, cannot fall back. Exiting.\n" % file_name)
|
||||
sys.exit()
|
||||
return file_name
|
||||
|
||||
|
@ -90,18 +90,26 @@ def get_logger(file_name, config = "config", fallback = False):
|
|||
try:
|
||||
logging.config.fileConfig(conf)
|
||||
log = logging.getLogger(config)
|
||||
log.debug("%s logger initialised" % config)
|
||||
return log
|
||||
except:
|
||||
pass
|
||||
|
||||
log = logging.basicConfig()
|
||||
log = logging.getLogger()
|
||||
log.debug("config logger initialised")
|
||||
log.error("basicConfig logger initialised")
|
||||
return log
|
||||
|
||||
# find a logging.conf file and set up logging
|
||||
log = get_logger("logging.conf")
|
||||
def check_dir(path, create = True):
|
||||
"""Check if a dir exists, optionally creates if not."""
|
||||
if os.path.exists(path):
|
||||
if os.path.isdir(path):
|
||||
return path
|
||||
else:
|
||||
return False
|
||||
if create:
|
||||
print "creating directory %s" % path
|
||||
else:
|
||||
return False
|
||||
|
||||
########################################################################
|
||||
# application wide consts
|
||||
|
@ -109,19 +117,31 @@ log = get_logger("logging.conf")
|
|||
APPLICATION_NAME_SHORT = 'fpdb'
|
||||
APPLICATION_VERSION = 'xx.xx.xx'
|
||||
|
||||
DIR_SELF = os.path.dirname(get_exec_path())
|
||||
#TODO: imo no good idea to place 'database' in parent dir
|
||||
DIR_DATABASES = os.path.join(os.path.dirname(DIR_SELF), 'database')
|
||||
DIR_SELF = get_exec_path()
|
||||
DIR_CONFIG = check_dir(get_default_config_path())
|
||||
DIR_DATABASE = check_dir(os.path.join(DIR_CONFIG, 'database'))
|
||||
DIR_LOG = check_dir(os.path.join(DIR_CONFIG, 'log'))
|
||||
|
||||
DATABASE_TYPE_POSTGRESQL = 'postgresql'
|
||||
DATABASE_TYPE_SQLITE = 'sqlite'
|
||||
DATABASE_TYPE_MYSQL = 'mysql'
|
||||
#TODO: should this be a tuple or a dict
|
||||
DATABASE_TYPES = (
|
||||
DATABASE_TYPE_POSTGRESQL,
|
||||
DATABASE_TYPE_SQLITE,
|
||||
DATABASE_TYPE_MYSQL,
|
||||
)
|
||||
|
||||
# find a logging.conf file and set up logging
|
||||
log = get_logger("logging.conf", config = "config")
|
||||
log.debug("config logger initialised")
|
||||
|
||||
# and then log our consts
|
||||
log.info("DIR SELF = %s" % DIR_SELF)
|
||||
log.info("DIR CONFIG = %s" % DIR_CONFIG)
|
||||
log.info("DIR DATABASE = %s" % DIR_DATABASE)
|
||||
log.info("DIR LOG = %s" % DIR_LOG)
|
||||
|
||||
########################################################################
|
||||
def string_to_bool(string, default=True):
|
||||
"""converts a string representation of a boolean value to boolean True or False
|
||||
|
@ -398,8 +418,7 @@ class Config:
|
|||
if file is not None: # config file path passed in
|
||||
file = os.path.expanduser(file)
|
||||
if not os.path.exists(file):
|
||||
print "Configuration file %s not found. Using defaults." % (file)
|
||||
sys.stderr.write("Configuration file %s not found. Using defaults." % (file))
|
||||
log.error("Specified configuration file %s not found. Using defaults." % (file))
|
||||
file = None
|
||||
|
||||
if file is None: file = get_config("HUD_config.xml")
|
||||
|
|
Loading…
Reference in New Issue
Block a user