您的位置:首页 > 编程语言 > Python开发

python标准库--logging模块

2020-08-21 18:36 966 查看
import logging

日志

异步、并发、线程
可写入变量,支持%和format格式化

日志级别

默认是warning

基本使用

# 指定级别
logging.basicConfig(
level=logging.DEBUG,  # 日志级别
filename='demo.log',	# 保存到当前目录  默认追加,不覆盖
filemode='w', # 默认追加 ,开启写入模式
# %()-数字s 是log内置的格式化输出,
#数字代表占位,-左对齐,为了日志对齐输出,可省略
'''astime当前时间
levelname日志级别
filename文件名
lineno日志产生的行数
message日志内容'''
format="%(asctime)s|%(levelname)8s|%(filename)20s:%(lineno)s|%(message)s",
datefat="%Y-%m-%d" # 自定义格式

)

# 日志级别
#logging.debug()
#loging.info()
#logging.warning()
#loging.error()
#logging.crrtical()

# 格式化字符串
logging.debug('姓名%s'% name)

高级应用

Loggers 记录器

# 提供应用程序的调用接口
# 单例
logger = logging.getLogger(__name__)

# 决定日志记录级别
looger.setLevel()

# 将日志传送到相关的handlers中
logger.addHandler()和logger.removeHandler()

Handlers 处理器


Formatters 格式


import logging
logger = looging.getLogger('yq')
# logger的级别和Handler级别默认取最小
# 若需要在Handler输出指定级别,logger需指定DEBUG
logger = setLevel(logging.DEBUG)

# 声明处理器
# debug输出到控制台
consoleHandler = logging.StreamHandler()
consoleHandler,setLevel(logging.DEBUG)

# 没有指定setLevel将继承logger的级别DEBUG
fileHandler = logging.FileHandler(filename = "addDemo.log")
consoleHandler,setLevel(logging.INFO)

# formatter格式同简单用法
formatter1 = logging.Formatter(格式一)
formatter2 = logging.Formatter(格式二)

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

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

# 定义过滤器 控制不同用户输出
fit = logging.Filter("cn.cccb")
# 关联过滤器
logger.addFilter(fit)
consoleHandler.addFilter(fit)

# 输出日志
#logging.debug()
#loging.info()
#logging.warning()
#loging.error()
#logging.critical()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: