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

logging输出日志在文件、控制台的格式设置

formatter = logging.Formatter(fmt=%(asctime)s%(message)s”,datefmt=%Y-%m-%d %H:%M:%S’)
fh.setFormatter(formatter)
efh.setFormatter(formatter)
stdout.setFormatter(formatter)
stderr.setFormatter(formatter)
logger.addHandler(fh)
logger.addHandler(efh)

在Python中,logging模块用于程序输出日志信息,提供了灵活的日志系统配置。这里的代码主要是对日志记录器(logger)和多个处理器(handler)进行格式化配置。

formatter = logging.Formatter(fmt=“%(asctime)s%(message)s”, datefmt=‘%Y-%m-%d %H:%M:%S’):这行代码创建了一个Formatter对象,用来设置日志的显示格式。fmt参数定义了日志消息的格式,其中%(asctime)s会输出时间戳,%(message)s会输出具体的日志消息内容。datefmt参数定义了时间戳的显示格式,这里是年-月-日 时:分:秒的格式。

fh.setFormatter(formatter):这行代码将上面创建的格式化对象formatter应用到文件处理器fh上,意味着fh处理的日志信息将会按照formatter指定的格式来显示。

efh.setFormatter(formatter):同上,将格式化对象应用到错误文件处理器efh上。

stdout.setFormatter(formatter):将格式化对象应用到标准输出处理器stdout上,意味着通过标准输出(通常是控制台)的日志信息也会按照formatter指定的格式显示。

stderr.setFormatter(formatter):将格式化对象应用到标准错误处理器stderr上,意味着错误信息也会按照formatter指定的格式显示。

logger.addHandler(fh):这行代码将文件处理器fh添加到logger中,这样logger发出的日志信息会被fh处理并输出到指定的文件中。

logger.addHandler(efh):同上,将错误文件处理器efh添加到logger中。

1、formatter = logging.Formatter(fmt=“%(asctime)s%(message)s”, datefmt=‘%Y-%m-%d %H:%M:%S’):
创建了一个日志格式化器对象。
fmt参数指定了日志的格式,这里表示日志将包含日志记录的时间(%(asctime)s)和日志消息内容(%(message)s)。
datefmt参数指定了时间部分的具体格式,这里是年 - 月 - 日 时:分: 秒的格式。
2、fh.setFormatter(formatter) 和 efh.setFormatter(formatter):
假设 fh 和 efh 是不同的日志处理程序对象(可能是文件处理程序、特定错误处理程序等),这里将前面创建的格式化器应用到这两个处理程序上,使得它们输出的日志按照指定的格式进行格式化。
3、stdout.setFormatter(formatter) 和 stderr.setFormatter(formatter):
如果 stdout 和 stderr 也是日志处理程序相关的对象,这两行代码将格式化器应用到它们上,同样使它们输出的日志按指定格式呈现。
4、logger.addHandler(fh) 和 logger.addHandler(efh):
将处理程序 fh 和 efh 添加到日志记录器 logger 上。这样,当有日志消息需要记录时,日志记录器会将消息传递给这些处理程序进行处理和输出。
总体来说,这段代码的作用是配置日志记录器,通过创建格式化器并将其应用到不同的日志处理程序上,然后将这些处理程序添加到日志记录器,以实现对日志输出的格式控制和多渠道输出。


http://www.mrgr.cn/news/20260.html

相关文章:

  • 谷歌排名SEO优化#蜘蛛池软件(搜索大客户)
  • 仕考网:军队文职人员公开招考笔试考试大纲
  • 滚雪球学MyBatis-Plus(13):测试与部署
  • Transformer 模型中的 Position Embedding 实现
  • 解释区块链技术的应用场景和优势。
  • 海南云亿商务咨询有限公司引领电商营销新风尚
  • SD-WAN解决企业远程服务难题
  • 云数据库函数指南:小白到大神的转变秘诀
  • 开放式耳机有哪些值得推荐的?开放式耳机推荐高性价比
  • Magic推出100M个token的上下文
  • 带你0到1之QT编程:六、打地基QList的高效用法
  • Linux文本处理大纲
  • 论文阅读-Chat2Layout: Interactive 3D Furniture Layout with a Multimodal LLM
  • Vu3 跨组件通讯
  • 面经学习(hbkj实习)
  • python如何过滤应用层协议
  • 【Git】git 从入门到实战系列(四)—— 工作区、暂存区以及版本库 .git 详解
  • 迭代器设计模式
  • 淘宝订单 API 接口:获取淘宝平台数据的 api 接口(电商 ERP 订单对接方案)
  • docker 启动ElasticSearch