| import os
|
| import sys
|
| import datetime
|
| import logging
|
|
|
|
|
| def log(*args, **kwargs):
|
| print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S:"), *args, **kwargs)
|
|
|
|
|
| '''
|
| # ===============================
|
| # logger
|
| # logger_name = None = 'base' ???
|
| # ===============================
|
| '''
|
|
|
|
|
| def logger_info(logger_name, log_path='default_logger.log'):
|
| ''' set up logger
|
| modified by Kai Zhang (github: https://github.com/cszn)
|
| '''
|
| log = logging.getLogger(logger_name)
|
| if log.hasHandlers():
|
| print('LogHandlers exist!')
|
| else:
|
| print('LogHandlers setup!')
|
| level = logging.INFO
|
| formatter = logging.Formatter('%(asctime)s.%(msecs)03d : %(message)s', datefmt='%y-%m-%d %H:%M:%S')
|
| fh = logging.FileHandler(log_path, mode='a')
|
| fh.setFormatter(formatter)
|
| log.setLevel(level)
|
| log.addHandler(fh)
|
|
|
|
|
| sh = logging.StreamHandler()
|
| sh.setFormatter(formatter)
|
| log.addHandler(sh)
|
|
|
|
|
| '''
|
| # ===============================
|
| # print to file and std_out simultaneously
|
| # ===============================
|
| '''
|
|
|
|
|
| class logger_print(object):
|
| def __init__(self, log_path="default.log"):
|
| self.terminal = sys.stdout
|
| self.log = open(log_path, 'a')
|
|
|
| def write(self, message):
|
| self.terminal.write(message)
|
| self.log.write(message)
|
|
|
| def flush(self):
|
| pass |