Example #1
0
    def __init__(self, component_name, domogik_prefix=True, use_filename=None):
        '''
        Get a logger with provided parameters and set config
        @param component_name : component name to log
        @param domogik_prefix : if logger name should be prefixed by 'domogik-'
        @param use_filename : if set tells the logger to use this file name (otherwise takes 'component_name')
        '''
        if component_name not in self.logger:
            LEVELS = {
                        'debug': logging.DEBUG,
                        'info': logging.INFO,
                        'warning': logging.WARNING,
                        'error': logging.ERROR,
                        'critical': logging.CRITICAL
            }

            cfg = Loader()
            config = cfg.load()[0]
            if use_filename is None:
                filename = "{0}/{1}.log".format(config['log_dir_path'], component_name)
            else:
                filename = "{0}/{1}.log".format(config['log_dir_path'], use_filename)
            level = config['log_level']

            if level not in LEVELS:
                raise ValueError("level must be one of 'debug','info','warning',"\
                        "'error','critical'. Check your config.")

            if domogik_prefix:
                my_logger = logging.getLogger('domogik-{0}'.format(component_name))
            else:
                my_logger = logging.getLogger(component_name)
            # log to file
            my_logger.propagate = 0
            if not my_logger.handlers:
                hdlr = TimedRotatingFileHandler(filename, \
                        when='D', interval=1, backupCount=10)
                formatter = logging.Formatter('%(asctime)s %(name)s %(levelname)s %(message)s')
                hdlr.setFormatter(formatter)
                my_logger.addHandler(hdlr)

	        # if loglevvel is set to debug (all log entries also go to stdout)
                if level == 'debug' and component_name.find('sqlalchemy') == -1:
                    dhdlr = logging.StreamHandler(sys.stdout)
                    dhdlr.setFormatter(formatter)
                    my_logger.addHandler(dhdlr)

            my_logger.setLevel(LEVELS[level])
            self.logger[component_name] = my_logger
Example #2
0
def main():
    with daemon.DaemonContext(
        stderr=sys.stderr,
        stdin=sys.stdin,
        stdout=sys.stdout):
        cfg = Loader('mq')
        my_conf = cfg.load()
        config = dict(my_conf[1])

        context = zmq.Context()
        if config['ip'].strip() == "*":
            config['ip'] = get_ip()
        print(("tcp://{0}:{1}".format(config['ip'], config['req_rep_port'])))
        broker = MDPBroker(context, "tcp://{0}:{1}".format(config['ip'], config['req_rep_port']))
        IOLoop.instance().start()
        broker.shutdown()