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

logging库使用教程

logging日志模块

logging是python常用的日志模块,logging涉及三个概念:

  • logger可以理解为记者,决定写什么
  • handler可以理解为发布渠道,决定发到哪里
  • formatter可以理解为文章格式,决定排版格式
  • Level可以理解为重要程度,决定哪些日志的要记录

导入语句

import logging
from functools import wraps

获取日志记录器

logger=logging.getLogger(__name__) # 获取记录器
logger.setLevel(logging.DEBUG) # 设置日志级别

添加控制台处理器

handler = logging.StreamHandler()
handler.setLevel(logging.DEBUG)

设置日志格式

formatter = logging.Formatter('%(asctime)s - %(name)s - [%(levelname)s]: %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)

建议demo1

import logging
from functools import wraps
logger=logging.getLogger(__name__) # 获取记录器
logger.setLevel(logging.DEBUG) # 设置日志级别
handler = logging.StreamHandler()
handler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - [%(levelname)s]: %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
print('hello')
def happy(func):@wraps(func)def wrapper():logger.info("this is a log system")func()return wrapper    @happy
def hi():print('name')hi()
print(hi.__name__) # 输出的是hi

建议demo2

import logging
import logging.configLOGGING_CONFIG = {'version': 1,'disable_existing_loggers': False,'formatters': {'detailed': {'format': '%(asctime)s - %(name)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s'},'simple': {'format': '%(levelname)s - %(message)s'}},'handlers': {'console': {'class': 'logging.StreamHandler','level': 'INFO','formatter': 'simple','stream': 'ext://sys.stdout'},'file': {'class': 'logging.FileHandler','level': 'DEBUG','formatter': 'detailed','filename': 'app_debug.log','mode': 'a'},'error_file': {'class': 'logging.FileHandler','level': 'WARNING','formatter': 'detailed','filename': 'app_error.log','mode': 'a'}},'loggers': {'': {  # 根日志器'level': 'DEBUG','handlers': ['console', 'file', 'error_file']},'database': {'level': 'INFO','handlers': ['console'],'propagate': False  # 不传递给根日志器}}
}# 使用配置
logging.config.dictConfig(LOGGING_CONFIG)
logger = logging.getLogger(__name__)  # 获取当前模块的日志器
http://www.jsqmd.com/news/280675/

相关文章:

  • 【毕业设计】基于springboot的隧道云视频监控管理信息平台设计与实现(源码+文档+远程调试,全bao定制等)
  • SpringBoot:封装 starter
  • 【课程设计/毕业设计】基于springboot的隧道云视频监控管理信息平台设计与实现隧道内事故、火灾、车辆滞留等问题监察【附源码、数据库、万字文档】
  • 滴滴 wsgsig secdd-challenge
  • RabbitMQ 在大数据领域的故障排查与解决方案
  • Linux 内核漏洞提权
  • 连接 AI 的隐形纽带:深度解构 MCP 传输层——从 Stdio 到 SSE 的实战抉择与架构差异
  • 计算机毕业设计springboot基于农科所农作物信息管理系统的设计与实现 基于SpringBoot的农业科研院所作物数据智慧管理平台的设计与实现面向农科机构的SpringBoot作物全生命周期
  • 测试转网络安全如何弯道超车?
  • Java计算机毕设之基于springboot的智慧医疗网上预约系统智慧医疗服务-智慧医疗服务平台(完整前后端代码+说明文档+LW,调试定制等)
  • 微服务架构演进实战 从单体到微服务的拆分原则与DDD入门
  • python mqgg 发送 json 文件
  • 学习日记day64
  • Java毕设项目:基于springboot的智慧医疗网上预约系统(源码+文档,讲解、调试运行,定制等)
  • GGUF、Safetensors、ONNX三种格式
  • springboot_ssm815大学生校园图书借阅购买管理系统--论文
  • #对象模型
  • 强烈安利8个AI论文平台,本科生搞定毕业论文!
  • springboot_ssm816大学运动场地预约器材租借管理系统--论文
  • springboot_ssm817学生信息管理系统--论文
  • leetcode 热题
  • [ACTF2020 新生赛]Upload 1(一句话木马加蚁剑)
  • 【深度测评】2026年护考刷题APP算法横评:为何“易小考”能成为护资备考首选?
  • 【毕业设计】基于springboot的智慧医疗网上预约系统(源码+文档+远程调试,全bao定制等)
  • RHCSA结课综合作业
  • 【课程设计/毕业设计】基于springboot的智慧医疗网上预约系统医院在线挂号与患者预约管理【附源码、数据库、万字文档】
  • springboot_ssm807古诗词数字化分享平台--论文
  • 异常检测:提示工程架构师如何识别提示数据中的异常行为?
  • 字节面试官:问你C++观察者模式,你答了7点他说不够深
  • 分流抢票软件bypass,Bypass-分流抢票:让你秒杀抢票,稳定捡漏的神器!