Advertisement
Guest User

Untitled

a guest
Sep 15th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. #!/usr/bin/env python
  2. #-*- encoding: utf8 -*-
  3. import sys
  4. import logging
  5.  
  6.  
  7. class MyLogger(logging.Logger):
  8. def __init__(self,
  9. name=None,
  10. level=logging.DEBUG,
  11. fmt=None,
  12. datefmt=None,
  13. logfile=None,
  14. filemode='w',
  15. stream=sys.stderr,
  16. colored=True,
  17. **kwargs):
  18.  
  19. super(MyLogger, self).__init__(name, level)
  20.  
  21. self.fmt = fmt or '[%(asctime)s %(name)s %(funcName)s %(levelname)s %(threadName)s] %(message)s'
  22. self.datefmt = datefmt or '%Y-%m-%d %H:%M:%S'
  23. self.formatter = logging.Formatter(self.fmt, self.datefmt)
  24.  
  25. if logfile:
  26. self._addFilehandler(logfile, filemode)
  27. else:
  28. self._addStreamHandler(stream)
  29. if colored:
  30. import coloredlogs
  31. coloredlogs.install(fmt=self.fmt, level=level, logger=self)
  32.  
  33. def _addFilehandler(self, filename, filemode):
  34.  
  35. file_hdlr = logging.FileHandler(filename, filemode)
  36. file_hdlr.setFormatter(self.formatter)
  37. self.addHandler(file_hdlr)
  38.  
  39. def _addStreamHandler(self, stream):
  40.  
  41. stream_hdlr = logging.StreamHandler(stream)
  42. stream_hdlr.setFormatter(self.formatter)
  43. self.addHandler(stream_hdlr)
  44.  
  45.  
  46. if __name__ == '__main__':
  47.  
  48. # logger = MyLogger(colored=False)
  49. logger = MyLogger(name='TEST1')
  50. logger.debug('debug message')
  51. logger.info('info message')
  52. logger.warn('warn message')
  53. logger.error('error message')
  54.  
  55. logger2 = MyLogger(name='TEST2', colored=False, logfile='out.log')
  56. logger2.warn('warn message')
  57. logger2.warn('warn message')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement