c 网站开发中间层怎么写,做建筑的网站,建筑模拟3中文版下载,网络软文营销的案例背景 生产环境中整个项目的日志信息需要每一天保存一个日志文件#xff0c;日志保留的最大时间为30天。 自定义一个日志模块#xff0c;代码如下:
import os, logging
from datetime import datetime
from logging import handlersclass Logger:定义Logge…背景 生产环境中整个项目的日志信息需要每一天保存一个日志文件日志保留的最大时间为30天。 自定义一个日志模块代码如下:
import os, logging
from datetime import datetime
from logging import handlersclass Logger:定义Logger类日志模块level_relations {debug: logging.DEBUG,info: logging.INFO,warning: logging.WARNING,error: logging.ERROR,crit: logging.CRITICAL,}log_dir /data/logif not os.path.exists(log_dir):os.makedirs(log_dir, exist_okTrue)filepath os.path.join(log_dir, fxxx_business_logs_{datetime.now().strftime(%Y-%m-%d)}.log)def __init__(self, filenamefilepath, levelinfo, whenD, backCount7, fmtNone):# 日志保存或打印的格式if fmt is None:fmt %(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)sself.logger logging.getLogger(filename)if not self.logger.hasHandlers():format_str logging.Formatter(fmt)self.logger.setLevel(self.level_relations.get(level))# 向控制台或终端输出sh logging.StreamHandler()sh.setFormatter(format_str)# 以天为单位保存日志文件th handlers.TimedRotatingFileHandler(filenamefilename, whenwhen, backupCountbackCount, encodingutf-8)th.setFormatter(format_str)self.logger.addHandler(sh)self.logger.addHandler(th)# 获取日志对象def get_log(self):return self.logger# 整个项目只需要打印一个日志文件只需要在使用的文件中导入log
# 调用log log.get_log()即可使用
log Logger()