log.py 971 B

1234567891011121314151617181920212223242526272829303132
  1. import multiprocessing
  2. import os
  3. import time
  4. import logging
  5. from crunchy.conf import LOG_FORMAT, DAEMON_LOG_LEVEL
  6. def setup_logger(loglevel=DAEMON_LOG_LEVEL, logfile=None, format=LOG_FORMAT):
  7. """Setup the ``multiprocessing`` logger. If ``logfile`` is not specified,
  8. ``stderr`` is used.
  9. Returns logger object.
  10. """
  11. logger = multiprocessing.get_logger()
  12. if logfile:
  13. log_file_handler = logging.FileHandler(logfile)
  14. formatter = logging.Formatter(format)
  15. log_file_handler.setFormatter(formatter)
  16. logger.addHandler(log_file_handler)
  17. else:
  18. multiprocessing.log_to_stderr()
  19. logger.setLevel(loglevel)
  20. return logger
  21. def emergency_error(logfile, message):
  22. logfh = open(logfile, "a")
  23. logfh.write("[%(asctime)s: FATAL/%(pid)d]: %(message)s\n" % {
  24. "asctime": time.asctime(),
  25. "pid": os.getpid(),
  26. "message": message})
  27. logfh.close()