Python logging,python logging模块默认日志
说明
1、输出文件、控制台和弹性搜索。
输出到控制台只是方便直接查看。
2、输出到文件直接存储,保留所有历史记录的备份。
3、输出到弹性搜索,直接作为存储和分析的中心。
基巴纳可以非常方便地分析和查看运行情况。
实例
导入日志记录
importsys
fromosimportmakedirs
fromos.pathimportdirname,存在
fromcmreslogging。handlersimportcmreshandler
记录器={}
LOG_ENABLED=True#是否开启日志
LOG_TO_CONSOLE=True#是否输出到控制台
LOG_TO_FILE=True#是否输出到文件
LOG_TO_ES=True#是否输出到弹性搜索
LOG_PATH= ./runtime.log#日志文件路径
LOG_LEVEL=DEBUG#日志级别
LOG _ FORMAT= %(级别名)s-%(ASC时间)s-process :%(进程)d-%(文件名)s-%(名称)s-%(行号)d-%(模块)s-%(消息)s #每条日志输出格式
ELASTIC _ SEARCH _ HOST= es HOST #弹性搜索主机
ELASTIC _ SEARCH _ PORT=9200 #弹性搜索端口
ELASTIC _ SEARCH _ INDEX= runtime # ELASTIC SEARCH INDEX name
APP _ ENVIRONMENT= dev #运行环境,如测试环境还是生产环境
defget_logger(name=None):
getloggerbyname
: paramname :记录器的名称
:返回:日志
全球记录者
ifnotname:name=__name__
ifloggers.get(name):
returnn
bsp;loggers.get(name)
logger=logging.getLogger(name)
logger.setLevel(LOG_LEVEL)
#输出到控制台
ifLOG_ENABLEDandLOG_TO_CONSOLE:
stream_handler=logging.StreamHandler(sys.stdout)
stream_handler.setLevel(level=LOG_LEVEL)
formatter=logging.Formatter(LOG_FORMAT)
stream_handler.setFormatter(formatter)
logger.addHandler(stream_handler)
#输出到文件
ifLOG_ENABLEDandLOG_TO_FILE:
#如果路径不存在,创建日志文件文件夹
log_dir=dirname(log_path)
ifnotexists(log_dir):makedirs(log_dir)
#添加FileHandler
file_handler=logging.FileHandler(log_path,encoding='utf-8')
file_handler.setLevel(level=LOG_LEVEL)
formatter=logging.Formatter(LOG_FORMAT)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
#输出到Elasticsearch
ifLOG_ENABLEDandLOG_TO_ES:
#添加CMRESHandler
es_handler=CMRESHandler(hosts=[{'host':ELASTIC_SEARCH_HOST,'port':ELASTIC_SEARCH_PORT}],
#可以配置对应的认证权限
auth_type=CMRESHandler.AuthType.NO_AUTH,
es_index_name=ELASTIC_SEARCH_INDEX,
#一个月分一个Index
index_name_frequency=CMRESHandler.IndexNameFrequency.MONTHLY,
#额外增加环境标识
es_additional_fields={'environment':APP_ENVIRONMENT}
)
es_handler.setLevel(level=LOG_LEVEL)
formatter=logging.Formatter(LOG_FORMAT)
es_handler.setFormatter(formatter)
logger.addHandler(es_handler)
#保存到全局loggers
loggers[name]=logger
returnlogger
以上就是python logging常见的解决方案,希望对大家有所帮助。更多Python学习指路:python基础教程
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。