day6 subprocess模块、logging模块

来源:互联网 时间:2017-06-01

logging模块



很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误、警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,logging的日志可以分为
debug()
,
info()
,
warning()
,
error()
andcritical()5个级别,
下面我们看一下怎么用:


---恢复内容结束---


logging模块



很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误、警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,logging的日志可以分为
debug()
,
info()
,
warning()
,
error()
andcritical()5个级别,
下面我们看一下怎么用:



%(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


用户输出的消息


想给日志文件加上日期,如下所示:



import logging

"""basicConfig()是设置日期格式的形式,level是日期的等级,datafmt是日期的格式"""

logging.basicConfig(
format=
'%(asctime)s %(message)s',
datefmt=
'%m/%d/%Y %I:%M:%S %p',
level=logging.DEBUG)

logging.warning(
'is when this event was logged.')

logging.basicConfig(
format=
"%(asctime)s %(message)s",
datefmt=
"%m/%d/%Y %I:%M:%S %p",
level=logging.DEBUG)

logging.debug("I love python")





运行结果如下:


05/30/2017 06:40:33 AM is when this event was logged.

05/30/2017 06:40:33 AM I love python


如果想同时把log打印在屏幕和文件日志里,就需要了解一点复杂的知识了

Python 使用logging模块记录日志涉及四个主要类,使用官方文档中的概括最为合适:



(1)logger提供了应用程序可以直接使用的接口



(2)handler将(logger创建的)日志记录发送到合适的目的输出



(3)filter提供了细度设备来决定输出哪条日志记录



(4)formatter决定日志记录的最终输出格式


相关阅读:
Top