logging通过Handler控制将日志信息输出到命令行和文件。
logging.StreamHandler() # 命令行
logging.FileHandler(log_file) # 文件
logging通过Formatter控制Handler输出内容的格式。
log_format = logging.Formatter(fmt='%(asctime)s - %(levelname)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S')
console_handler.setFormatter(log_format)
logging通过“名称”区分不同的logger对象。
logging.getLogger()
模板代码
def init_logger(log_file=None, log_file_level=logging.NOTSET):
'''
Example:
>>> init_logger(log_file)
>>> logger.info("abc")
'''
log_format = logging.Formatter(fmt='%(asctime)s - %(levelname)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S')
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
console_handler = logging.StreamHandler()
console_handler.setFormatter(log_format)
logger.handlers = [console_handler]
if log_file and log_file != '':
file_handler = logging.FileHandler(log_file)
file_handler.setLevel(log_file_level)
file_handler.setFormatter(log_format)
logger.addHandler(file_handler)
return logger