diff --git a/examples/to_stdout.py b/examples/to_stdout.py index a65be63..c3739ec 100644 --- a/examples/to_stdout.py +++ b/examples/to_stdout.py @@ -4,15 +4,19 @@ import logging logging.basicConfig(level=logging.WARNING) import hpfeeds +outstream = sys.stdout def main(): if len(sys.argv) < 5: - print >> sys.stderr, "Usage: python %s "%(sys.argv[0]) + print >> sys.stderr, "Usage: python %s [logfile]"%(sys.argv[0]) sys.exit(1) HOST, PORT, IDENT, SECRET, CHANNELS = [arg.encode("utf-8") for arg in sys.argv[1:6]] CHANNELS = CHANNELS.split(",") PORT = int(PORT) + + if len(sys.argv) > 6: + outstream = open(sys.argv[6], "a") hpc = hpfeeds.new(HOST, PORT, IDENT, SECRET) print >>sys.stderr, 'connected to', hpc.brokername @@ -20,19 +24,23 @@ def main(): def on_message(identifier, channel, payload): try: payload = str(payload).strip() - print "ident=%s, channel=%s, payload='%s'"%(identifier, channel, payload) + print >>outstream, "ident=%s, channel=%s, payload=%s"%(identifier, channel, payload) except Exception, e: - print "Error", e + print >> sys.stderr, "Error", e def on_error(payload): print >>sys.stderr, ' -> errormessage from server: {0}'.format(payload) hpc.stop() + outstream.close() hpc.subscribe(CHANNELS) hpc.run(on_message, on_error) hpc.close() + outstream.close() return 0 if __name__ == '__main__': try: sys.exit(main()) - except KeyboardInterrupt:sys.exit(0) + except KeyboardInterrupt: + outstream.close() + sys.exit(0)