加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python logging模块

发布时间:2020-12-17 00:02:22 所属栏目:Python 来源:网络整理
导读:函数式简单配置 ) logging.info( ) logging.warning( ) logging.error( ) logging.critical( ) 默认情况下Python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志,这说明默认的日志级别设置为WARNING(日志级别等级CRITICAL >

函数式简单配置

) logging.info() logging.warning() logging.error() logging.critical()

默认情况下Python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志,这说明默认的日志级别设置为WARNING(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG),默认的日志格式为日志级别:Logger名称:用户输出消息。

灵活配置日志级别,日志格式,输出位置:

=====logging.debug(<span style="color: #800000;">'<span style="color: #800000;">debug message<span style="color: #800000;">'<span style="color: #000000;">)
logging.info(
<span style="color: #800000;">'
<span style="color: #800000;">info message
<span style="color: #800000;">'
<span style="color: #000000;">)
logging.warning(
<span style="color: #800000;">'
<span style="color: #800000;">warning message
<span style="color: #800000;">'
<span style="color: #000000;">)
logging.error(
<span style="color: #800000;">'
<span style="color: #800000;">error message
<span style="color: #800000;">'
<span style="color: #000000;">)
logging.critical(
<span style="color: #800000;">'
<span style="color: #800000;">critical message
<span style="color: #800000;">')

参数配置:

filename:用指定的文件名创建FiledHandler,这样日志会被存储在指定的文件中。
filemode:文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”。
format:指定handler使用的日志显示格式。
datefmt:指定日期时间格式。
level:设置rootlogger(后边会讲解具体概念)的日志级别
stream:用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件(f
=<span style="color: #000000;">open(‘test.log’,’w’)),默认为sys.stderr。若同时列出了filename和stream两个参数,则stream参数会被忽略。

format参数中可能用到的格式化串:
%<span style="color: #000000;">(name)s Logger的名字
%<span style="color: #000000;">(levelno)s 数字形式的日志级别
%<span style="color: #000000;">(levelname)s 文本形式的日志级别
%<span style="color: #000000;">(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
%<span style="color: #000000;">(filename)s 调用日志输出函数的模块的文件名
%<span style="color: #000000;">(module)s 调用日志输出函数的模块名
%<span style="color: #000000;">(funcName)s 调用日志输出函数的函数名
%<span style="color: #000000;">(lineno)d 调用日志输出函数的语句所在的代码行
%<span style="color: #000000;">(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
%<span style="color: #000000;">(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
%(asctime)s 字符串形式的当前时间。默认格式是 “2018-09-08 16:49:45,896<span style="color: #000000;">”。逗号后面的是毫秒
%<span style="color: #000000;">(thread)d 线程ID。可能没有
%<span style="color: #000000;">(threadName)s 线程名。可能没有
%<span style="color: #000000;">(process)d 进程ID。可能没有
%(message)s用户输出的消息

logger对象配置

logger = logging.getLogger() <span style="color: #008000;">#<span style="color: #008000;"> 先创建一个log对象 logger<span style="color: #008000;">

<span style="color: #008000;"> 创建一个handler,用于写入日志文件

fh = logging.FileHandler(<span style="color: #800000;">'<span style="color: #800000;">test.log<span style="color: #800000;">',encoding=<span style="color: #800000;">'<span style="color: #800000;">utf-8<span style="color: #800000;">'<span style="color: #000000;">)

<span style="color: #008000;">#<span style="color: #008000;"> 再创建一个handler,用于输出到控制台
ch =<span style="color: #000000;"> logging.StreamHandler()
<span style="color: #008000;">#<span style="color: #008000;"> 还要创建一个格式
formatter = logging.Formatter(<span style="color: #800000;">'<span style="color: #800000;">%(asctime)s - %(name)s - %(levelname)s - %(message)s<span style="color: #800000;">'<span style="color: #000000;">)
fh.setLevel(logging.DEBUG)

fh.setFormatter(formatter) <span style="color: #008000;">#<span style="color: #008000;"> 文件操作符 绑定一个 格式
ch.setFormatter(formatter) <span style="color: #008000;">#<span style="color: #008000;"> # 屏幕操作符 绑定一个 格式
logger.addHandler(fh) <span style="color: #008000;">#<span style="color: #008000;"> logger对象来绑定:文件操作符, 屏幕操作符
logger.addHandler(ch) <span style="color: #008000;">#<span style="color: #008000;">logger对象还可以添加多个fh和ch对象
<span style="color: #000000;">
logger.debug(<span style="color: #800000;">'<span style="color: #800000;">logger debug message<span style="color: #800000;">') <span style="color: #008000;">#<span style="color: #008000;"> 计算或者工作的细节
logger.info(<span style="color: #800000;">'<span style="color: #800000;">logger info message<span style="color: #800000;">') <span style="color: #008000;">#<span style="color: #008000;"> 记录一些用户的增删改查的操作
logger.warning(<span style="color: #800000;">'<span style="color: #800000;">logger warning message<span style="color: #800000;">') <span style="color: #008000;">#<span style="color: #008000;"> 警告操作
logger.error(<span style="color: #800000;">'<span style="color: #800000;">logger error message<span style="color: #800000;">') <span style="color: #008000;">#<span style="color: #008000;"> 错误操作
logger.critical(<span style="color: #800000;">'<span style="color: #800000;">logger critical message<span style="color: #800000;">') <span style="color: #008000;">#<span style="color: #008000;"> 批判的 直接导致程序出错退出的

logging库提供了多个组件:Logger、Handler、Filter、Formatter。Logger对象提供应用程序可直接使用的接口,Handler发送日志到适当的目的地,Filter提供了过滤日志信息的方法,Formatter指定日志显示格式。另外,可以通过:logger.setLevel(logging.Debug)设置级别,当然,也可以通过

fh.setLevel(logging.Debug)单对文件流设置某个级别。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读