コード例 #1
0
ファイル: fslogger.py プロジェクト: digideskio/fshttpstream
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)
コード例 #2
0
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)
コード例 #3
0
ファイル: fslogger.py プロジェクト: digideskio/fshttpstream
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)
コード例 #4
0
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)
コード例 #5
0
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)
コード例 #6
0
 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)
コード例 #7
0
 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()
コード例 #8
0
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)
コード例 #9
0
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))
コード例 #10
0
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)
コード例 #11
0
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))
コード例 #12
0
        """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))