import logging, logext

hub = logext.Hub()

h = logging.StreamHandler()
f = logging.Formatter("%(asctime)s %(name)-19s - %(message)s")
h.setFormatter(f)
f = logging.Filter()
f.level = ['ERROR']
a = logext.Action()
a.addHandler(h)
a.addFilter(f)
hub.addAction(a)

def tcpReceiver():
    class TCPFilter(logging.Filter):
        def filter(self, record):
            record.msg = 'TCP: ' + record.msg
            return 1
    r = logext.TCPReceiver(hub, 'localhost', logging.DEFAULT_TCP_LOGGING_PORT)
    r.addFilter(TCPFilter())
    print 'tcp started'
    r.serve_forever()

def udpReceiver():
    class UDPFilter(logging.Filter):
        def filter(self, record):
            record.msg = 'UDP: ' + record.msg
            return 1
    r = logext.UDPReceiver(hub, 'localhost', logging.DEFAULT_UDP_LOGGING_PORT)
    r.addFilter(UDPFilter())
    print 'udp started'
    r.serve_forever()

if __name__ == "__main__":
    import threading
    tcp = threading.Thread(target=tcpReceiver)
    udp = threading.Thread(target=udpReceiver)
    tcp.start()
    udp.start()
    tcp.join()
    udp.join()

