当前位置: 首页 > news >正文

Python日志处理器,同时打印到控制台和保存到文件中,并保证格式一致

使用logging模块的时候,默认是输出到控制台的,当然也可以配置输出到文件中,但是当你配置了文件后,控制台的输出就消失了,所以,需要一个策略即能保存到文件中,又能输出到控制台中。

下面是我做的优化:logging模块默认会创建一个处理器,所以只需要创建一个控制台的处理器即可

import logging# 第一步:创建文件日志对象
logger = logging.getLogger()
# 第二步:创建文件日志处理器,默认logging会自己创建一个处理器
file_fmt = "%(asctime)s - %(levelname)s - %(message)s"
logging.basicConfig(level=logging.DEBUG, format=file_fmt, filename="./log.txt", filemode="a", encoding="utf-8")
console_handler = logging.StreamHandler()
# 第三步:添加控制台文本处理器
console_handler.setLevel(level=logging.DEBUG)
console_fmt = "%(asctime)s - %(levelname)s - %(message)s"
fmt1 = logging.Formatter(fmt=console_fmt)
console_handler.setFormatter(fmt=fmt1)
# 第四步:将控制台日志器、文件日志器,添加进日志器对象中
logger.addHandler(console_handler)if __name__ == '__main__':logger.info("这是一条info消息")

实现的效果: 文件中的格式和控制台是一样的

http://www.lryc.cn/news/170875.html

相关文章:

  • JavaWeb后端开发登录操作 登录功能 通用模板/SpringBoot整合
  • The 2023 ICPC Asia Regionals Online Contest (1)(A D I J K L)
  • C++ PrimerPlus 复习 第七章 函数——C++的编程模块(上)
  • 2.求循环小数
  • zabbix监控告警邮箱提醒,钉钉提醒
  • 典型数据结构-栈/队列/链表、哈希查找、二叉树(BT)、线索二叉树、二叉排序树(BST树)、平衡二叉树(AVL树)、红黑树(RB树)
  • pyarmor 加密许可证的使用
  • 网络路径监控分析
  • vue双向数据绑定是如何实现的?
  • el-date-picker 封装一个简单的日期组件, 主要是禁用日期
  • 保研复习-计算机组成原理
  • linux环境安装redis(亲测完成)
  • 关于命令行交互自动化,及pyinstaller打包wexpect的问题
  • 8.4 【MySQL】文件系统对数据库的影响
  • Python WEB框架FastAPI (二)
  • 基于Java网络书店商城设计实现(源码+lw+部署文档+讲解等)
  • 怒刷LeetCode的第3天(Java版)
  • JavaScript数组去重常用方法
  • 蓝牙电话之HFP—电话音频
  • JDBC基本概念
  • leetcode876 链表的中间节点
  • 了解方法重写
  • 2、从“键鼠套装”到“全键盘游戏化”审核
  • 【flutter】架构之商城main入口
  • linux学习实操计划0103-安装软件
  • git vscode
  • Linux命令行批量删除文件
  • CAN - 基础
  • 【Hash表】找出出现一次的数字-力扣 136
  • Resize和centerCrop的区别