千家信息网

Python中如何使用logging

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家分享的是有关Python中如何使用logging的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。import logging'''默认情况下Python的log
千家信息网最后更新 2026年11月03日Python中如何使用logging

这篇文章给大家分享的是有关Python中如何使用logging的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

import logging
'''
默认情况下Python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志,
这说明默认的日志级别设置为WARNING(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG),
默认的日志格式为日志级别:Logger名称:用户输出消息。
可见在logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为,可用参数有
filename:用指定的文件名创建FiledHandler(后边会具体讲解handler的概念),这样日志会被存储在指定的文件中。
filemode:文件打开方式,在指定了filename时使用这个参数,默认值为"a"还可指定为"w"。
format:指定handler使用的日志显示格式。
datefmt:指定日期时间格式。
level:设置rootlogger(后边会讲解具体概念)的日志级别。
stream:用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件(f=open('test.log','w')),默认为sys.stderr。
若同时列出了filename和stream两个参数,则stream参数会被忽略。
format参数中可能用到的格式化串:
%(name)s Logger的名字
%(levelno)s 数字形式的日志级别
%(levelname)s 文本形式的日志级别
%(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
%(filename)s 调用日志输出函数的模块的文件名
%(module)s 调用日志输出函数的模块名
%(funcName)s 调用日志输出函数的函数名
%(lineno)d 调用日志输出函数的语句所在的代码行
%(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
%(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
%(asctime)s 字符串形式的当前时间。默认格式是 "2003-07-08 16:49:45,896"。逗号后面的是毫秒
%(thread)d 线程ID。可能没有
%(threadName)s 线程名。可能没有
%(process)d 进程ID。可能没有
%(message)s用户输出的消息

logging库提供了多个组件:Logger、Handler、Filter、Formatter。Logger对象提供应用程序可直接使用的接口,Handler发送日志到适当的目的地,Filter提供了过滤日志信息的方法,Formatter指定日志显示格式。
Logger是一个树形层级结构,输出信息之前都要获得一个Logger(如果没有显示的获取则自动创建并使用root Logger)。
logger = logging.getLogger()返回一个默认的Logger也即root Logger,并应用默认的日志级别、Handler和Formatter设置。
当然也可以通过Logger.setLevel(lel)指定最低的日志级别,可用的日志级别有logging.DEBUG、logging.INFO、logging.WARNING、logging.ERROR、logging.CRITICAL。
Logger.debug()、Logger.info()、Logger.warning()、Logger.error()、Logger.critical()输出不同级别的日志,只有日志等级大于或等于设置的日志级别的日志才会被输出。

'''
logging.basicConfig(level=logging.DEBUG, # 配置日志级别,默认输出debug等级及等级更高的内容
format='%(asctime)s--->%(filename)s[line:%(lineno)d]====>%(levelname)s::::%(message)s', # 配置日志显示格式
datefmt='%a, %d %b %Y %H:%M:%S', # 配置时间格式
filename='test.log', # 配置文件路径
filemode='a') # 配置文件权限
logging.debug('debug message')
logging.warning('warning message')

示例4: 只在屏幕文件中写入日志,不在屏幕上面显示

def logger():
logger = logging.getLogger() # 创建一个大对象
fh = logging.FileHandler("test_log") # 向文件里发送内容,并且给个参数,作用是:定义一个文件名,往文件里写入内容
ch=logging.StreamHandler() #向屏幕上发送内容
fm = logging.Formatter("%(asctime)s--->%(filename)s[line:%(lineno)d]====>%(levelname)s::::%(message)s") # 这个也是一个对象,作用是:定义日志格式
fh.setFormatter(fm) # 往文件里写内容
ch.setFormatter(fm) #往屏幕上输出内容
logger.addHandler(fh) # 对象,类似于吸别人内力,把fh吃掉
logger.addHandler(ch) #对象,类似于吸别人内力,把ch吃掉
logger.setLevel("DEBUG") # 设置日志级别,控制日志输入多少条信息
return logger

-------------从这里开始都是在操作log----------------

logger = logger() # 这个日志就做成了一个接口,在其它地方,直接调用他就可以啦!
logger.debug("debug") # 输出日志的级别
logger.info("info")
logger.warning("warning")
logger.error("error")
logger.critical("critical")

感谢各位的阅读!关于"Python中如何使用logging"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

日志 输出 级别 文件 格式 内容 函数 参数 对象 时间 模块 配置 信息 屏幕 等级 形式 文件名 作用 内力 接口 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 小米移动互联网科技园 百单网互联网科技有限公司 互联网巨头科技公司 关于新基建和互联网科技 互联网金融 科技创新 互联网科技公司有哪些 互联网科技咨询 天扬科技互联网广告 互联网科技有限公司 翻译 宁波青枫互联网科技有限公司 银川新华互联网科技职业技术培训学校图片 互联网经济与金融科技 坤平互联网科技 为客找房互联网科技公司怎么样 浙南科技城互联网大厦招聘 富国互联网科技002692 江苏互联网科技小贷 互联网领先科技活动 数字互联网科技有限公司 互联网的黑科技实验室 重生之互联网科技帝国 世界互联网领先科技成果 唐信互联网科技 大连 奔汉互联网科技 语蝶互联网科技有限公司 移动互联网科技公司 开一家科技互联网公司需要多少钱 中国互联网公司排名锤子科技 世界互联网领先科技成果获奖 锡山区互联网智能科技产品供应
0