| | 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 |