Example #1
0
def test_pubsub():
    generator = multiprocessing.Process(target=do_generate_two_records)
    generator.start()
    messages = []
    tagged_logger.subscribe()
    for message in tagged_logger.listen():
        messages.append(message)
        if len(messages) == 2:
            break
    tagged_logger.unsubscribe()
    generator.join()
    msg1, msg2 = messages
    assert isinstance(msg1, tagged_logger.Log)
    assert isinstance(msg2, tagged_logger.Log)
    assert msg1.message == 'foo'
    assert msg2.message == 'bar'
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tagged_logger as logger
import argparse

options = None

def parse_args():
    global options
    parser = argparse.ArgumentParser()
    parser.add_argument('-p', '--prefix')
    parser.add_argument('-T', '--time-format', default='[%F %T]')
    options = parser.parse_args()

def do_listen():
    logger.configure(prefix=options.prefix)
    logger.subscribe()
    for record in logger.listen():
        ts = record.ts.strftime(options.time_format)
        formatted = '{0} {1}'.format(ts, str(record))
        print(formatted)

if __name__ == '__main__':
    parse_args()
    try:
        do_listen()
    except KeyboardInterrupt:
        logger.unsubscribe()
    print("")