m2m模型翻译
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
2.1 KiB

6 months ago
  1. # -*- coding: utf-8 -*-
  2. #*****************************************************************************
  3. # Copyright (C) 2006 Jorgen Stenarson. <jorgen.stenarson@bostream.nu>
  4. #
  5. # Distributed under the terms of the BSD License. The full license is in
  6. # the file COPYING, distributed as part of this software.
  7. #*****************************************************************************
  8. from __future__ import print_function, unicode_literals, absolute_import
  9. import socket, logging, logging.handlers
  10. from pyreadline.unicode_helper import ensure_str
  11. host = "localhost"
  12. port = logging.handlers.DEFAULT_TCP_LOGGING_PORT
  13. pyreadline_logger = logging.getLogger('PYREADLINE')
  14. pyreadline_logger.setLevel(logging.DEBUG)
  15. pyreadline_logger.propagate = False
  16. formatter = logging.Formatter(str('%(message)s'))
  17. file_handler = None
  18. class NULLHandler(logging.Handler):
  19. def emit(self, s):
  20. pass
  21. class SocketStream(object):
  22. def __init__(self, host, port):
  23. self.logsocket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
  24. def write(self, s):
  25. self.logsocket.sendto(ensure_str(s), (host, port))
  26. def flush(self):
  27. pass
  28. def close(self):
  29. pass
  30. socket_handler = None
  31. pyreadline_logger.addHandler(NULLHandler())
  32. def start_socket_log():
  33. global socket_handler
  34. socket_handler = logging.StreamHandler(SocketStream(host, port))
  35. socket_handler.setFormatter(formatter)
  36. pyreadline_logger.addHandler(socket_handler)
  37. def stop_socket_log():
  38. global socket_handler
  39. if socket_handler:
  40. pyreadline_logger.removeHandler(socket_handler)
  41. socket_handler = None
  42. def start_file_log(filename):
  43. global file_handler
  44. file_handler = logging.FileHandler(filename, "w")
  45. pyreadline_logger.addHandler(file_handler)
  46. def stop_file_log():
  47. global file_handler
  48. if file_handler:
  49. pyreadline_logger.removeHandler(file_handler)
  50. file_handler.close()
  51. file_handler = None
  52. def stop_logging():
  53. log("STOPING LOG")
  54. stop_file_log()
  55. stop_socket_log()
  56. def log(s):
  57. s = ensure_str(s)
  58. pyreadline_logger.debug(s)