Esempio n. 1
0
File: tail.py Progetto: lnenov/lymph
    def run(self):
        client = Client.from_config(self.config)
        tail = RemoteTail()

        for address in self.args['<address>']:
            connected = tail.subscribe_service(client.container.lookup(address))
            if not connected:
                print("Couldn't connect to log endpoint of '%s'" % address)

        if not tail.instances:
            return 1

        level = get_loglevel(self.args['--level'])
        logger = logging.getLogger('lymph-tail-cli')
        logger.setLevel(level)

        console = logging.StreamHandler()
        console.setLevel(level)
        console.setFormatter(logging.Formatter('[%(service_type)s][%(identity)s] [%(levelname)s] %(message)s'))

        logger.addHandler(console)

        try:
            for topic, instance, msg in tail:
                level = getattr(logging, topic)
                extra = {
                    'identity': instance.identity[:10],
                    'service_type': instance.endpoint,
                }
                logger.log(level, msg, extra=extra)
        except KeyboardInterrupt:
            pass
Esempio n. 2
0
    def test_get_loglevel(self):
        self.assertEqual(get_loglevel('DEBUG'), logging.DEBUG)
        self.assertEqual(get_loglevel('debug'), logging.DEBUG)
        self.assertEqual(get_loglevel('Debug'), logging.DEBUG)
        self.assertEqual(get_loglevel('INFO'), logging.INFO)
        self.assertEqual(get_loglevel('info'), logging.INFO)
        self.assertEqual(get_loglevel('ERROR'), logging.ERROR)
        self.assertEqual(get_loglevel('error'), logging.ERROR)
        self.assertEqual(get_loglevel('CRITICAL'), logging.CRITICAL)
        self.assertEqual(get_loglevel('critical'), logging.CRITICAL)

        self.assertRaises(ValueError, get_loglevel, 'FOO')
        self.assertRaises(ValueError, get_loglevel, '*')