python logging的说明和实例用法
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"python logging的说明和实例用法",在日常操作中,相信很多人在python logging的说明和实例用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希
千家信息网最后更新 2026年11月02日python logging的说明和实例用法
这篇文章主要介绍"python logging的说明和实例用法",在日常操作中,相信很多人在python logging的说明和实例用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"python logging的说明和实例用法"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
说明
1、输出文件、控制台和Elasticsearch。
输出到控制台只是方便直接查看。
2、输出到文件直接存储,保留所有历史记录的备份。
3、输出到Elasticsearch,直接作为存储和分析的中心。
Kibana可以非常方便地分析和查看运行情况。
实例
import loggingimport sysfrom os import makedirsfrom os.path import dirname, exists from cmreslogging.handlers import CMRESHandler loggers = {} LOG_ENABLED = True # 是否开启日志LOG_TO_CONSOLE = True # 是否输出到控制台LOG_TO_FILE = True # 是否输出到文件LOG_TO_ES = True # 是否输出到 Elasticsearch LOG_PATH = './runtime.log' # 日志文件路径LOG_LEVEL = 'DEBUG' # 日志级别LOG_FORMAT = '%(levelname)s - %(asctime)s - process: %(process)d - %(filename)s - %(name)s - %(lineno)d - %(module)s - %(message)s' # 每条日志输出格式ELASTIC_SEARCH_HOST = 'eshost' # Elasticsearch HostELASTIC_SEARCH_PORT = 9200 # Elasticsearch PortELASTIC_SEARCH_INDEX = 'runtime' # Elasticsearch Index NameAPP_ENVIRONMENT = 'dev' # 运行环境,如测试环境还是生产环境 def get_logger(name=None): """ get logger by name :param name: name of logger :return: logger """ global loggers if not name: name = __name__ if loggers.get(name): return loggers.get(name) logger = logging.getLogger(name) logger.setLevel(LOG_LEVEL) # 输出到控制台 if LOG_ENABLED and LOG_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) # 输出到文件 if LOG_ENABLED and LOG_TO_FILE: # 如果路径不存在,创建日志文件文件夹 log_dir = dirname(log_path) if not exists(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 if LOG_ENABLED and LOG_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 return logger到此,关于"python logging的说明和实例用法"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
输出
文件
实例
日志
控制台
环境
学习
控制
更多
路径
分析
存储
帮助
运行
实用
接下来
全局
历史
只是
备份
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技工作委员会副主任毛军
互联网科技未来
广州互联网科技公司
期待互联网科技
奇酷互联网科技
上海致骋互联网科技
润盈互联网科技
兼蜜互联网科技
互联网科技英文翻译
山东吉时兔互联网科技有限公司
富国互联网科技创新基金
互联网科技热点资讯
新兴科技互联网创新大赛颁奖典礼
成都互联网科技公司工作好不好
中国互联网公司排名锤子科技
朱啸虎曾投资哪些互联网科技企业
科技互联网海报
云南省自由互联网科技有限公司
广州有谷有贝互联网科技有限公司
互联网高科技行业有哪些企业
工业互联网科技新基建
互联网科技的英文
互联网科技缩写
互联网 新科技
中国的互联网科技企业的崛起
来此购互联网科技有限公司
东莞新华互联网科技学校
梅州GM互联网络科技有限公司
上海互联网科技公司ppt
长沙渺峰互联网科技有限公司