logger.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import os
  2. import logging
  3. import tempfile
  4. from .. import constants
  5. LOG_FILE = None
  6. LOGGER = None
  7. FILE_NAME = 'io_three.export.log'
  8. LEVELS = {
  9. constants.DEBUG: logging.DEBUG,
  10. constants.INFO: logging.INFO,
  11. constants.WARNING: logging.WARNING,
  12. constants.ERROR: logging.ERROR,
  13. constants.CRITICAL: logging.CRITICAL
  14. }
  15. def init(level=constants.DEBUG):
  16. global LOG_FILE
  17. LOG_FILE = os.path.join(tempfile.gettempdir(), FILE_NAME)
  18. with open(LOG_FILE, 'w'):
  19. pass
  20. global LOGGER
  21. LOGGER = logging.getLogger('Three.Export')
  22. LOGGER.setLevel(LEVELS[level])
  23. stream = logging.StreamHandler()
  24. stream.setLevel(LEVELS[level])
  25. format_ = '%(asctime)s - %(name)s - %(levelname)s: %(message)s'
  26. formatter = logging.Formatter(format_)
  27. stream.setFormatter(formatter)
  28. file_handler = logging.FileHandler(LOG_FILE)
  29. file_handler.setLevel(LEVELS[level])
  30. file_handler.setFormatter(formatter)
  31. LOGGER.addHandler(stream)
  32. LOGGER.addHandler(file_handler)
  33. def info(*args):
  34. LOGGER.info(*args)
  35. def debug(*args):
  36. LOGGER.debug(*args)
  37. def warning(*args):
  38. LOGGER.warning(*args)
  39. def error(*args):
  40. LOGGER.error(*args)
  41. def critical(*args):
  42. LOGGER.critical(*args)