Python logging

该文介绍了Python的logging库,包括日志的五个级别(DEBUG,INFO,WARNING,ERROR,CRITICAL)及其用法。文中展示了如何配置基础日志设置,如指定输出文件、格式和级别。此外,还讨论了记录器、处理器、过滤器和格式化器这四个主要组件的功能,并提供了编程配置日志处理的示例,包括定义自定义过滤器和处理器。
摘要由CSDN通过智能技术生成

logging-1

# -*- coding:utf8 -*-
"""
# editor: hjjdreamer
# create-time: 2023/1/21-11:12
# Python-Script: 26_logging.py
# describe:
logging库的日志级别
debug == 10 == 详细信息,用于调试
info == 20 == 正常运行产生的信息
warning == 30 == 虽然正常运行但可能发生错误 (默认)
error == 40 == 问题严重以至于程序不能执行一些功能
critical == 50 == 问题严重以至于不能继续运行

logging采用模块化设计,主要4个组件
Loggers == 记录器 == 提供应用程序代码能直接使用的接口
Handlers == 处理器 == 将记录器产生的日志发送到目的地
Filters == 过滤器 == 粒度控制,决定哪些日志输出
Formatters == 格式化器 == 设置日志内容组成结构和信息字段
"""

import logging

# 默认日志级别是warning
# 使用baseConfig()来指定日志输出级别
# filename 设置输出到文件
# filemode 默认是追加模式a, 写入模式是w
# datefml 执行时间格式化

#logging.basicConfig(filename="demo.log", filemode="a", level=logging.DEBUG)
logging.basicConfig(format="%(asctime)s|%(levelname)s|%(filename)s:%(lineno)s|%(message)s",
                    datefmt="%Y-%m-%d %H:%M:%S",
                    level=logging.DEBUG)
print("this is a log test")
logging.debug("this is debug log")
# logging.info("this is info log")
# logging.warning("this is warning log")
# logging.error("this is error log")
# logging.critical("this is critical log")

# DEBUG:root:this is debug log
# INFO:root:this is info log
# WARNING:root:this is warning log
# ERROR:root:this is error log
# CRITICAL:root:this is critical log

# 向日志输出变量
# logging.debug("name: %s, years: %d", "zhangsan", 18)

name = "lisi"
age = 19
# logging.debug("name: %s, age: %d" % (name, age))
# logging.debug("name: {}, age: {}".format(name, age))
logging.debug(f"name: {name}, age: {age}")

# 输出格式和添加公告信息
# format="%(asctime)s|%(levelname)s|%(filename)s:%(lineno)s|%(message)s"
# logging.basicConfig(format="%(asctime)s|%(levelname)s|%(filename)s:%(lineno)s|%(message)s", level=logging.DEBUG)
#
# 2023-01-21 21:21:44,829|DEBUG|26_logging.py:31|this is debug log
# 2023-01-21 21:21:44,829|DEBUG|26_logging.py:50|name: lisi, age: 19

logging-2

# -*- coding:utf8 -*-
"""
# editor: hjjdreamer
# create-time: 2023/1/21-22:03
# Python-Script: 26_logging_1.py
# describe:

"""
import logging

# 编程的方式来写一下高级的写法
# 记录器
logger = logging.getLogger("cn.cccb.APPLOG")
logger.setLevel(logging.INFO)

print(logger)
print(type(logger))

# 处理器handler
consoleHandler = logging.StreamHandler()
consoleHandler.setLevel(logging.DEBUG)

# 没有给handler指定日志级别,将使用logger的级别
fileHandler = logging.FileHandler(filename="addDemo.log")

# formatter格式
formatter = logging.Formatter("%(asctime)s\t|%(levelname)8s|%(filename)s:%(lineno)s\t|%(message)s")

# 给处理器设置格式
consoleHandler.setFormatter(formatter)
fileHandler.setFormatter(formatter)

# 记录器要设置处理器
logger.addHandler(consoleHandler)
logger.addHandler(fileHandler)

# 定义一个过滤器
flt = logging.Filter("cn.cccb")

# 关联过滤器
logger.addFilter(flt)
fileHandler.addFilter(flt)

# 打印日志代码
logger.debug("this is debug log")
logger.info("this is info log")
logger.warning("this is warning log")
logger.error("this is error log")
logger.critical("this is critical log")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值