答案是使用logging模块配置Logger、Handler、Formatter实现自定义日志。首先创建命名Logger并设置级别,接着添加StreamHandler和FileHandler指定输出目标,分别设置级别;然后定义Formatter控制格式,包含时间、名称、级别和消息;最后将Handler绑定到Logger完成配置,即可按需输出日志。

在Python中实现自定义日志,核心是使用内置的logging模块,通过配置Logger、Handler、Formatter和Filter来自定义日志的输出格式、级别和目标位置。下面介绍如何一步步实现一个灵活实用的自定义日志系统。
创建自定义Logger
每个应用通常需要一个独立的Logger实例,避免影响全局配置。
使用logging.getLogger(name)获取一个命名的Logger,名称通常用__name__设置日志级别(如DEBUG、INFO、WARNING等),低于该级别的日志不会被处理
示例:
西语写作助手
西语助手旗下的AI智能写作平台,支持西语语法纠错润色、论文批改写作
19 查看详情
import logginglogger = logging.getLogger(name)logger.setLevel(logging.DEBUG)
添加Handler指定输出方式
Handler决定日志输出到哪里,比如控制台、文件,甚至网络或邮件。
立即学习“Python免费学习笔记(深入)”;
StreamHandler:输出到控制台FileHandler:输出到文件RotatingFileHandler:按大小轮转日志文件TimedRotatingFileHandler:按时间轮转
可以同时添加多个Handler,实现既打印到终端又写入文件。
示例:
# 输出到控制台console_handler = logging.StreamHandler()console_handler.setLevel(logging.INFO)输出到文件
file_handler = logging.FileHandler("app.log")file_handler.setLevel(logging.DEBUG)
自定义日志格式
通过Formatter控制日志的显示样式,比如是否包含时间、行号、日志级别等。
常用格式字段:%(asctime)s、%(name)s、%(levelname)s、%(message)s、%(lineno)d可设置时间格式,如%Y-%m-%d %H:%M:%S
示例:
formatter = logging.Formatter( fmt='%(asctime)s - %(name)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S')console_handler.setFormatter(formatter)file_handler.setFormatter(formatter)
将Handler绑定到Logger
把配置好的Handler添加到Logger,即可生效。
logger.addHandler(console_handler)logger.addHandler(file_handler)
之后就可以正常使用了:
logger.debug("这是调试信息")logger.info("程序启动")logger.warning("注意:资源即将耗尽")
基本上就这些。只要合理组织Logger结构,配合不同Handler和格式,就能满足大多数项目的日志需求。不复杂但容易忽略细节,比如忘记设级别或重复添加Handler导致日志重复输出。
以上就是python自定义日志如何实现的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/920330.html
微信扫一扫
支付宝扫一扫