python 动态增加logger handler
来源:互联网 发布:淘宝企业店铺审核时间 编辑:程序博客网 时间:2024/06/07 20:15
需求:
针对不同的项目按照年月生成不同的日志目录。
import os,datetime,logging,logging.configfrom core.config.config_log import *from core.kernel.exception import *class Log:def __init__(self):logging.config.dictConfig(LOG_CONFIG)self.logger = logging.getLogger("system")def get_logger(self):return self.loggerdef create_handler(self,level,file_name):handler = logging.handlers.RotatingFileHandler(file_name,"a", maxBytes=0, backupCount=0, delay=False)handler.setLevel(level)handler.setFormatter(logging.Formatter(LOG_CONFIG["formatters"]["standard"]["format"]))return handlerdef create_filter(self):passdef create_project_logger(self,project=None):if project:direct =LOG_PATH + project + "/" + str(TODAY_TIME.year) + "/" + str(TODAY_TIME.month) if not os.path.exists(direct):self.logger.info("创建文件夹,directName: %s",direct)os.makedirs(direct)if not os.path.exists(direct):self.logger.error("创建文件夹失败,directName %s",direct)raise MyException(-1,"创建日志文件夹失败")self.logger.addHandler(self.create_handler(logging.INFO,direct+"/info_" +str(datetime.datetime.now().date())+".log"))self.logger.addHandler(self.create_handler(logging.ERROR,direct+"/error_" +str(datetime.datetime.now().date())+".log"))# not workself.logger.removeHandler(self.create_handler(logging.INFO,LOG_PATH + "/system.log"))return self.loggerLOG = Log().get_logger()
配置文件:config_log.py
import datetimeLOG_PATH = './log/'TODAY_TIME = datetime.datetime.now()LOG_CONFIG = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'standard': { 'format': '[%(asctime)s][%(levelname)s]-%(message)s' } }, 'filters': { }, 'handlers': { 'system': { 'level':'INFO', 'class':'logging.handlers.RotatingFileHandler', 'filename': LOG_PATH + "/system.log", 'maxBytes': 1024*1024*5, # 5 MB 'backupCount': 5, 'formatter':'standard', 'mode':'a', }, 'console':{ 'level': 'INFO', 'class': 'logging.StreamHandler', 'formatter': 'standard' }, }, 'loggers': { 'system':{ 'handlers': ['system','console'], 'level':"INFO", 'propagate': False }, }}
说明:当没有项目时,使用日志配置文件的system。有项目时,动态生成对应infohandler,添加到logger中去。
0 0
- python 动态增加logger handler
- Python Logging模块-Logger,Handler,Formatter
- python logger
- 动态创建Logger
- python中的简单logger
- Python 之 Logger
- Python Logger module
- python logger 重写
- python Logger 高级教程
- Python day14 logger复习
- python logger学习
- Python模块之Logging(五)——在配置文件中为Logger配置多个handler
- 动态增加
- Python logger模块应用示例
- python中的logger模块讲解
- python中为类和实例动态增加方法
- Python 动态增加类的属性和方法
- Logger
- meta功能总结
- poj2752_Seek the Name,Seek the Fame_KMP(next数组定义的应用)
- 5分钟做出简单makefile(linux)
- 使用List集合写的一个简单的学生信息管理系统!
- javaIO 序列化和反序列化
- python 动态增加logger handler
- Java注释与规范、javadoc命令生成帮助手册
- 排序、子查询
- 2017/04/20
- SpringMVC的freemarker支持(页面静态话)
- xgboost入门与实战(实战调参篇)
- 查询语句
- 普通树的广度搜索和深度搜索java实现
- 单例模式