##// END OF EJS Templates
improved logging + Hub,Engine,Scheduler are Configurable
improved logging + Hub,Engine,Scheduler are Configurable

File last commit:

r3603:600411fc
r3603:600411fc
Show More
logwatcher.py
70 lines | 2.1 KiB | text/x-python | PythonLexer
#!/usr/bin/env python
"""A simple log process that prints messages incoming from"""
#
# Copyright (c) 2010 Min Ragan-Kelley
#
# This file is part of pyzmq.
#
# pyzmq is free software; you can redistribute it and/or modify it under
# the terms of the Lesser GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# pyzmq is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# Lesser GNU General Public License for more details.
#
# You should have received a copy of the Lesser GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import sys
import zmq
logport = 20202
def main(topics, addrs):
context = zmq.Context()
socket = context.socket(zmq.SUB)
for topic in topics:
print "Subscribing to: %r"%topic
socket.setsockopt(zmq.SUBSCRIBE, topic)
if addrs:
for addr in addrs:
print "Connecting to: ", addr
socket.connect(addr)
else:
socket.bind('tcp://*:%i'%logport)
while True:
# topic = socket.recv()
# print topic
# print 'tic'
raw = socket.recv_multipart()
if len(raw) != 2:
print "!!! invalid log message: %s"%raw
else:
topic, msg = raw
# don't newline, since log messages always newline:
print "%s | %s" % (topic, msg),
sys.stdout.flush()
if __name__ == '__main__':
import sys
topics = []
addrs = []
for arg in sys.argv[1:]:
if '://' in arg:
addrs.append(arg)
else:
topics.append(arg)
if not topics:
# default to everything
topics = ['']
if len(addrs) < 1:
print "binding instead of connecting"
# addrs = ['tcp://127.0.0.1:%i'%p for p in range(logport,logport+10)]
# print "usage: display.py <address> [ <topic> <address>...]"
# raise SystemExit
main(topics, addrs)