Пример #1
0
    def __init__(self, config):
        # Daemonize before doing any other setup
        if config.daemonize:
            daemonize()

        self.config = config
        self._children = ChildManager(config.cgroupdir, not config.oneshot)
        self._listener = ConnListener()
        self._last_log_prune = datetime.fromtimestamp(0)
        self._last_cache_prune = datetime.fromtimestamp(0)
        self._ignore_signals = False

        # Configure signals
        for sig in self.caught_signals:
            signal.signal(sig, self._handle_signal)

        # Configure logging
        baselog = logging.getLogger()
        baselog.setLevel(logging.DEBUG)
        if not config.daemonize:
            # In daemon mode, stderr goes to /dev/null, so don't bother
            # logging there.
            handler = logging.StreamHandler()
            baselog.addHandler(handler)
        self._logfile_handler = TimedRotatingFileHandler(
            os.path.join(config.logdir, 'diamondd.log'),
            when='midnight',
            backupCount=config.logdays)
        self._logfile_handler.setFormatter(_TimestampedLogFormatter())
        baselog.addHandler(self._logfile_handler)