from __future__ import absolute_import from __future__ import division from __future__ import print_function import sys import logging import os def get_logger(log_dir, name): logger = logging.getLogger(name) logger.setLevel(logging.DEBUG) # Add file handler and stdout handler formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') file_handler = logging.FileHandler(os.path.join(log_dir, 'info.log')) file_handler.setFormatter(formatter) # Add console handler. console_formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') console_handler = logging.StreamHandler(sys.stdout) console_handler.setFormatter(console_formatter) logger.addHandler(file_handler) logger.addHandler(console_handler) # Add google cloud log handler logger.info('Log directory: %s', log_dir) return logger def config_logging(log_dir, log_filename='info.log', level=logging.INFO): # Add file handler and stdout handler formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') # Create the log directory if necessary. try: os.makedirs(log_dir) except OSError: pass file_handler = logging.FileHandler(os.path.join(log_dir, log_filename)) file_handler.setFormatter(formatter) file_handler.setLevel(level=level) # Add console handler. console_formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') console_handler = logging.StreamHandler(sys.stdout) console_handler.setFormatter(console_formatter) console_handler.setLevel(level=level) logging.basicConfig(handlers=[file_handler, console_handler], level=level)