经常用大组的代码框架,发现他们的代码都非常formal,而且莫名很好看,尤其是里面有个package的使用我觉得很方便,那就是logging。
具体有关logging的知识可以参考:python中logging日志模块详解讲的还是蛮全的。
为了方便以后写代码的使用吧,自己写了个function可以快速构造一个logger,只要实现指定保存路径以及文件名就可以,还可以设置提醒等级:
def generate_logger(log_dir=".", log_name="LOG.log", level=1):
''' generate a python logger, write training information into terminal and a file
:param: log_dir -> path to log file
:param: log_name -> name of log file
:param: level -> showing level, range from 1 to 5 with the importance rising
:return: a logger class which can both write info to terminal and log_file
'''
log_levels = {1: log.DEBUG,
2: log.INFO,
3: log.WARNING,
4: log.ERROR,
5: log.CRITICAL}
log_level = log_levels[level]
log.basicConfig(format='%(asctime)s: %(message)s', level=log.INFO, datefmt='%m/%d %I:%M:%S %p')
log_file = os.path.join(log_dir, log_name)
file_handler = log.FileHandler(log_file)
file_handler.setLevel(log_level)
log.getLogger().addHandler(file_handler)
return log
使用效果演示(stdout上的):
缓存的文件(以时间戳命名):