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

logger.py 1.3 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # Copyright (c) Alibaba, Inc. and its affiliates.
  2. import logging
  3. from typing import Optional
  4. init_loggers = {}
  5. def get_logger(log_file: Optional[str] = None,
  6. log_level: int = logging.INFO,
  7. file_mode: str = 'w'):
  8. """ Get logging logger
  9. Args:
  10. log_file: Log filename, if specified, file handler will be added to
  11. logger
  12. log_level: Logging level.
  13. file_mode: Specifies the mode to open the file, if filename is
  14. specified (if filemode is unspecified, it defaults to 'w').
  15. """
  16. logger_name = __name__.split('.')[0]
  17. logger = logging.getLogger(logger_name)
  18. if logger_name in init_loggers:
  19. return logger
  20. stream_handler = logging.StreamHandler()
  21. handlers = [stream_handler]
  22. # TODO @wenmeng.zwm add logger setting for distributed environment
  23. if log_file is not None:
  24. file_handler = logging.FileHandler(log_file, file_mode)
  25. handlers.append(file_handler)
  26. formatter = logging.Formatter(
  27. '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
  28. for handler in handlers:
  29. handler.setFormatter(formatter)
  30. handler.setLevel(log_level)
  31. logger.addHandler(handler)
  32. logger.setLevel(log_level)
  33. init_loggers[logger_name] = True
  34. return logger

致力于通过开放的社区合作,开源AI模型以及相关创新技术,推动基于模型即服务的生态繁荣发展