X-Git-Url: https://git.llucax.com/software/sercom-old.git/blobdiff_plain/182a5bf0c28c506d3b5ba9f3bd65f617451e227c..94d0e2427a848e8227ff40f112440a866b6bffbe:/src/sercom/util.py?ds=sidebyside diff --git a/src/sercom/util.py b/src/sercom/util.py index 9736d6f..3f4aa40 100644 --- a/src/sercom/util.py +++ b/src/sercom/util.py @@ -11,21 +11,29 @@ import ConfigParser # Módulos externos import sqlobject +log = None + def get_logger(tipo): - log = None + global log for log_conf in ('log.ini', os.path.expanduser('~/.sercom/log.ini'), '/etc/sercom/log.ini'): if (os.access(log_conf, os.R_OK)): logging.config.fileConfig(log_conf) log = logging.getLogger(tipo) return log +def log_exception(type, value, tb): + import traceback + e = traceback.format_exception(type, value, tb) + log.critical('Hubo una excepcion!\n%s', ''.join(e)) + def init(tipo): + global log # Seteo locale locale.setlocale(locale.LC_ALL, '') # Obtengo configuración conf = ConfigParser.SafeConfigParser() if not conf.read(('/etc/sercom/sercom.ini', os.path.expanduser('~/.sercom/sercom.ini'), 'sercom.ini')): - sys.stderr.write('No se pudo obtener configuración!\n') + print >>sys.stderr, 'No se pudo obtener configuración!' sys.exit(1) # Seteo umask para que el grupo pueda leer os.umask(00027) @@ -36,6 +44,8 @@ def init(tipo): if not log: print >>sys.stderr, 'No se pudo cargar archivo de configuración de log.' sys.exit(1) + # Cambio el manejador de excepciones por uno que loguee + sys.excepthook = log_exception # Devuelvo cosas interesantes return (conf, conn, log)