class FileLogger(BasicLogger): def __init__(self, logfile='/tmp/fshttpstream.log', loglevel=LOG_DEBUG, servicename="fshttpstream"): h = logging.FileHandler(filename=logfile) h.setLevel(loglevel) fmt = logging.Formatter("%(asctime)s "+servicename+"[%(process)d]: %(levelname)s: %(message)s") h.setFormatter(fmt) self._logger = RootLogger(loglevel) self._logger.addHandler(h)
class FileLogger(StdoutLogger): def __init__(self, logfile='/tmp/%s.log' % __default_servicename__, \ loglevel=LOG_DEBUG, servicename=__default_servicename__): h = logging.FileHandler(filename=logfile) h.setLevel(loglevel) fmt = logging.Formatter("%(asctime)s "+servicename+"[%(process)d]: %(levelname)s: %(message)s") h.setFormatter(fmt) self._logger = RootLogger(loglevel) self._logger.addHandler(h)
class SysLogger(BasicLogger): def __init__(self, addr='/dev/log', syslogfacility="local0", loglevel=LOG_DEBUG, servicename="fshttpstream"): fac = Syslog.facility_names[syslogfacility] h = Syslog(address=addr, facility=fac) h.setLevel(loglevel) fmt = logging.Formatter(servicename+"[%(process)d]: %(levelname)s: %(message)s") h.setFormatter(fmt) self._logger = RootLogger(loglevel) self._logger.addHandler(h)
class FileLogger(StdoutLogger): def __init__(self, logfile='/tmp/%s.log' % __default_servicename__, \ loglevel=LOG_DEBUG, servicename=__default_servicename__): h = logging.handlers.RotatingFileHandler(filename=logfile, mode='a', maxBytes=104857600, backupCount=100) h.setLevel(loglevel) fmt = logging.Formatter("%(asctime)s "+servicename+"[%(process)d]: %(levelname)s: %(message)s") h.setFormatter(fmt) self._logger = RootLogger(loglevel) self._logger.addHandler(h)
class SysLogger(StdoutLogger): def __init__(self, addr='/dev/log', syslogfacility="local0", \ loglevel=LOG_DEBUG, servicename=__default_servicename__): if ':' in addr: host, port = addr.split(':', 1) port = int(port) addr = (host, port) fac = Syslog.facility_names[syslogfacility] h = Syslog(address=addr, facility=fac) h.setLevel(loglevel) fmt = logging.Formatter(servicename+"[%(process)d]: %(levelname)s: %(message)s") h.setFormatter(fmt) self._logger = RootLogger(loglevel) self._logger.addHandler(h)
def __init__(self, loglevel=LOG_DEBUG, servicename=__default_servicename__): self.loglevel = loglevel h = logging.StreamHandler() h.setLevel(loglevel) fmt = logging.Formatter("%(asctime)s "+servicename+"[%(process)d]: %(levelname)s: %(message)s") h.setFormatter(fmt) self._logger = RootLogger(loglevel) self._logger.addHandler(h)
def __init__(self, url, method='POST', fallback_file=None, loglevel=LOG_DEBUG, servicename=__default_servicename__): import urlparse self.loglevel = loglevel self.fallback_file = fallback_file p = urlparse.urlparse(url) netloc = p.netloc urlpath = p.path if p.query: urlpath += '?' + query h = HTTPHandler(host=netloc, url=urlpath, method=method) h.setLevel(loglevel) fmt = logging.Formatter(servicename+"[%(process)d]: %(levelname)s: %(message)s") h.setFormatter(fmt) self._logger = RootLogger(loglevel) self._logger.addHandler(h) if self.fallback_file: self._fallback = FileLogger(logfile=self.fallback_file, loglevel=self.loglevel, servicename=servicename) else: self._fallback = DummyLogger()
class StdoutLogger(object): def __init__(self, loglevel=LOG_DEBUG, servicename=__default_servicename__): self.loglevel = loglevel h = logging.StreamHandler() h.setLevel(loglevel) fmt = logging.Formatter("%(asctime)s "+servicename+"[%(process)d]: %(levelname)s: %(message)s") h.setFormatter(fmt) self._logger = RootLogger(loglevel) self._logger.addHandler(h) def set_debug(self): self.loglevel = LOG_DEBUG self._logger.setLevel(self.loglevel) def set_info(self): self.loglevel = LOG_INFO self._logger.setLevel(self.loglevel) def set_error(self): self.loglevel = LOG_ERROR self._logger.setLevel(self.loglevel) def set_warn(self): self.loglevel = LOG_WARN self._logger.setLevel(self.loglevel) def info(self, msg): self._logger.info(safe_str(msg)) def debug(self, msg): self._logger.debug(safe_str(msg)) def warn(self, msg): self._logger.warn(safe_str(msg)) def error(self, msg): self._logger.error(safe_str(msg)) def write(self, msg): self.info(msg)
class HTTPLogger(object): def __init__(self, url, method='POST', fallback_file=None, loglevel=LOG_DEBUG, servicename=__default_servicename__): import urlparse self.loglevel = loglevel self.fallback_file = fallback_file p = urlparse.urlparse(url) netloc = p.netloc urlpath = p.path if p.query: urlpath += '?' + query h = HTTPHandler(host=netloc, url=urlpath, method=method) h.setLevel(loglevel) fmt = logging.Formatter(servicename+"[%(process)d]: %(levelname)s: %(message)s") h.setFormatter(fmt) self._logger = RootLogger(loglevel) self._logger.addHandler(h) if self.fallback_file: self._fallback = FileLogger(logfile=self.fallback_file, loglevel=self.loglevel, servicename=servicename) else: self._fallback = DummyLogger() def set_debug(self): self.loglevel = LOG_DEBUG self._logger.setLevel(self.loglevel) self._fallback.set_debug() def set_info(self): self.loglevel = LOG_INFO self._logger.setLevel(self.loglevel) self._fallback.set_info() def set_error(self): self.loglevel = LOG_ERROR self._logger.setLevel(self.loglevel) self._fallback.set_error() def set_warn(self): self.loglevel = LOG_WARN self._logger.setLevel(self.loglevel) self._fallback.set_warn() def info(self, msg): try: self._logger.info(safe_str(msg)) except: self._fallback.info(safe_str(msg)) def debug(self, msg): try: self._logger.debug(safe_str(msg)) except: self._fallback.debug(safe_str(msg)) def warn(self, msg): try: self._logger.warn(safe_str(msg)) except: self._fallback.warn(safe_str(msg)) def error(self, msg): try: self._logger.error(safe_str(msg)) except: self._fallback.error(safe_str(msg)) def write(self, msg): try: self.info(msg) except: self._fallback.info(safe_str(msg))
class StdoutLogger(object): def __init__(self, loglevel=LOG_DEBUG, servicename=__default_servicename__): self.loglevel = loglevel h = logging.StreamHandler() h.setLevel(loglevel) fmt = logging.Formatter("%(asctime)s " + servicename + "[%(process)d]: %(levelname)s: %(message)s") h.setFormatter(fmt) self._logger = RootLogger(loglevel) self._logger.addHandler(h) def set_debug(self): self.loglevel = LOG_DEBUG self._logger.setLevel(self.loglevel) def set_info(self): self.loglevel = LOG_INFO self._logger.setLevel(self.loglevel) def set_error(self): self.loglevel = LOG_ERROR self._logger.setLevel(self.loglevel) def set_warn(self): self.loglevel = LOG_WARN self._logger.setLevel(self.loglevel) def info(self, msg): self._logger.info(safe_str(msg)) def debug(self, msg): self._logger.debug(safe_str(msg)) def warn(self, msg): self._logger.warn(safe_str(msg)) def error(self, msg): self._logger.error(safe_str(msg)) def write(self, msg): self.info(msg)
class HTTPLogger(object): def __init__(self, url, method='POST', fallback_file=None, loglevel=LOG_DEBUG, servicename=__default_servicename__): import urlparse self.loglevel = loglevel self.fallback_file = fallback_file p = urlparse.urlparse(url) netloc = p.netloc urlpath = p.path if p.query: urlpath += '?' + query h = HTTPHandler(host=netloc, url=urlpath, method=method) h.setLevel(loglevel) fmt = logging.Formatter(servicename + "[%(process)d]: %(levelname)s: %(message)s") h.setFormatter(fmt) self._logger = RootLogger(loglevel) self._logger.addHandler(h) if self.fallback_file: self._fallback = FileLogger(logfile=self.fallback_file, loglevel=self.loglevel, servicename=servicename) else: self._fallback = DummyLogger() def set_debug(self): self.loglevel = LOG_DEBUG self._logger.setLevel(self.loglevel) self._fallback.set_debug() def set_info(self): self.loglevel = LOG_INFO self._logger.setLevel(self.loglevel) self._fallback.set_info() def set_error(self): self.loglevel = LOG_ERROR self._logger.setLevel(self.loglevel) self._fallback.set_error() def set_warn(self): self.loglevel = LOG_WARN self._logger.setLevel(self.loglevel) self._fallback.set_warn() def info(self, msg): try: self._logger.info(safe_str(msg)) except: self._fallback.info(safe_str(msg)) def debug(self, msg): try: self._logger.debug(safe_str(msg)) except: self._fallback.debug(safe_str(msg)) def warn(self, msg): try: self._logger.warn(safe_str(msg)) except: self._fallback.warn(safe_str(msg)) def error(self, msg): try: self._logger.error(safe_str(msg)) except: self._fallback.error(safe_str(msg)) def write(self, msg): try: self.info(msg) except: self._fallback.info(safe_str(msg))
"""Initializes the parameters for creating the log.""" self.basename = basename self.kwargs = kwargs def new_logger(self): """Create default logs""" logger = logging.getLogger(self.basename) handler = DatagramHandler('localhost', DEFAULT_UDP_LOGGING_PORT) logger.addHandler(handler) _level = (self.kwargs.get("level") or "INFO").upper() if _level == "DEBUG" or _level == "INFO": logger.setLevel(logging.INFO) elif _level == "WARNING": logger.setLevel(logging.WARNING) elif _level == "ERROR": logger.setLevel(logging.ERROR) elif _level == "CRITICAL": logger.setLevel(logging.CRITICAL) else: logger.setLevel(logging.ERROR) return logger def get_logger(self): """Return a default logging handler.""" if self.basename not in LoggerMachine.LOG_DIC: LoggerMachine.LOG_DIC[self.basename] = self.new_logger() return LoggerMachine.LOG_DIC[self.basename] Logger.manager = PrivateManager(RootLogger(logging.WARNING))