def setup_logging(cp, syslog_level, facility): from logging import config as logging_config if cp.has_section("logging"): # This branch is bit modified version of logging.config.fileConfig # critical section logging._acquireLock() try: logging._handlers.clear() del logging._handlerList[:] # Handlers add themselves to logging._handlers disable_existing_loggers = True formatters = logging_config._create_formatters(cp) handlers = logging_config._install_handlers(cp, formatters) logging_config = _install_loggers(cp, handlers, disable_existing_loggers) finally: logging._releaseLock() else: try: syslog = logging.handlers.SysLogHandler(address='/dev/log', facility=facility) syslog.setLevel(syslog_level) logger.addHandler(syslog) except socket.error, e: pass
def fileConfig(fname, defaults=None, disable_existing_loggers=True): import ConfigParser cp = ConfigParser.ConfigParser(defaults) if hasattr(fname, 'readline'): cp.readfp(fname) else: cp.read(fname) formatters = _create_formatters(cp) logging._acquireLock() try: logging._handlers.clear() del logging._handlerList[:] handlers = _install_handlers(cp, formatters) _install_loggers(cp, handlers, disable_existing_loggers) finally: logging._releaseLock()
def __fileConfig(config, disable_existing_loggers=True): """ Read the logging configuration from a ConfigParser-format file. This can be called several times from an application, allowing an end user the ability to select from various pre-canned configurations (if the developer provides a mechanism to present the choices and load the chosen configuration). """ formatters = logging_config._create_formatters(config) # critical section logging._acquireLock() try: logging._handlers.clear() del logging._handlerList[:] # Handlers add themselves to logging._handlers handlers = logging_config._install_handlers(config, formatters) logging_config._install_loggers(config, handlers, disable_existing_loggers) finally: logging._releaseLock()
def configLogging(fname, logPath): cp = ConfigParser.ConfigParser() if hasattr(cp, 'readfp') and hasattr(fname, 'readline'): cp.readfp(fname) else: cp.read(fname) logfile = os.path.join(logPath, 'CouchPotato.log') if os.name == 'nt': logfile = logfile.replace('\\', '\\\\') cp.set('handler_accesslog', 'args', cp.get('handler_accesslog', 'args').replace('{logPath}', logfile)) formatters = _create_formatters(cp) # critical section logging._acquireLock() try: logging._handlers.clear() del logging._handlerList[:] handlers = _install_handlers(cp, formatters) _install_loggers(cp, handlers, 1) finally: logging._releaseLock()