completion_logger_server.py 1004 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/usr/bin/env python
  2. import sys
  3. from socket import *
  4. from time import strftime
  5. import datetime
  6. def main():
  7. if len(sys.argv) < 4:
  8. print "completion_logger_server.py <listen address> <listen port> <log file>"
  9. exit(1)
  10. host = sys.argv[1]
  11. port = int(sys.argv[2])
  12. buf = 1024 * 8
  13. addr = (host,port)
  14. # Create socket and bind to address
  15. UDPSock = socket(AF_INET,SOCK_DGRAM)
  16. UDPSock.bind(addr)
  17. print "Listing on {0}:{1} and logging to '{2}'".format(host, port, sys.argv[3])
  18. # Open the logging file.
  19. f = open(sys.argv[3], "a")
  20. # Receive messages
  21. while 1:
  22. data,addr = UDPSock.recvfrom(buf)
  23. if not data:
  24. break
  25. else:
  26. f.write("{ ");
  27. f.write("\"time\": \"{0}\"".format(datetime.datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')))
  28. f.write(", \"sender\": \"{0}\" ".format(addr[0]))
  29. f.write(", \"data\": ")
  30. f.write(data)
  31. f.write(" }\n")
  32. f.flush()
  33. # Close socket
  34. UDPSock.close()
  35. if __name__ == '__main__':
  36. main()