这篇文章给大家介绍怎么在Python中使用日志记录置模块,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强> 1,将日志直接输出到屏幕强>
import 日志记录 logging.debug(& # 39;却;能够is debug 消息# 39;) logging.info(& # 39;却;能够is info 消息# 39;) logging.warning(& # 39;却;能够is warning 消息# 39;) #,默认情况下,日志将日志打印到屏幕,日志级别为警告; #输出====================================#,警告:根:却;能够is warning 消息
<强> 2。通过日志记录。basicConfig函数对日志的输出格式及方式做相关配置强>
import 日志记录=logging.DEBUG logging.basicConfig(水平, ,,,,,,,格式=& # 39;% (asctime) s %(文件名)s(线:% (lineno) d), % (levelname) s % & # 39;(消息), ,,,,,,,datefmt=& # 39; %,, % d % b % Y % H: M %: % & # 39; ,,,,,,,文件名=& # 39;myapp.log& # 39; ,,,,,,,filemode=& # 39; w # 39;) logging.debug(& # 39;却;能够is debug 消息# 39;) logging.info(& # 39;却;能够is info 消息# 39;) logging.warning(& # 39;却;能够is warning 消息# 39;) #。/myapp.log文件中内容为: 24 #太阳,还以为,May 2009年,21:48:54 demo2.py [: 11], DEBUG 却;能够is DEBUG 消息 24 #太阳,还以为,May 2009年,21:48:54 demo2.py(线:12),INFO 却;能够is INFO 消息 24 #太阳,还以为,May 2009年,21:48:54 demo2.py [: 13], WARNING 却;能够is WARNING 消息
<强> logging.basicConfig参数:强>
#日志记录。basicConfig函数各参数:
文件名:指定日志文件名
filemode:和文件函数意义相同,指定日志文件的打开模式,& # 39;w # 39;或& # 39;一个# 39;
格式:指定输出的格式和内容,格式可以输出很多有用信息,如上例所示:
,,,% (levelno):,,,,打印日志级别的数值
,,,% (levelname):,,,,打印日志级别名称
,,,%(路径):,,,,打印当前执行程序的路径,其实就是sys.argv [0]
,,,%(文件名):,,,,打印当前执行程序名
,,,% (funcName):,,,,打印日志的当前函数
,,,% (lineno) d:,,,,打印日志的当前行号
,,,% (asctime):,,,,打印日志的时间
,,,%(线程)d:,,,,打印线程ID
,,,% (threadName):打印线程名称
,,,%(过程)d:,,,,打印进程ID
,,,%(消息):,,,,打印日志信息
datefmt:,,,,指定时间格式,同time.strftime ()
水平:,,,,,,,,设置日志级别,默认为logging.WARNING
流:,,,,指定将日志的输出流,可以指定输出到sys.stderr, sys.stdout或者文件,默认输出到sys.stderr,当流和文件名同时指定时,流被忽略
<强> 3,将日志同时输出到多个处理器强>
先定义一个住处理程序,并使用<代码> addHander() 代码>添加到主处理程序,实现日志输出到多个处理程序。
<>强,同时输出到文件和屏幕强>
import 日志记录 #设置一个basicConfig只能输出到一个处理程序=logging.DEBUG logging.basicConfig(水平, ,,,,,,,格式=& # 39;% (asctime) s %(文件名)s(线:% (lineno) d), % (levelname) s % & # 39;(消息), ,,,,,,,datefmt=& # 39; %,, % d % b % Y % H: M %: % & # 39; ,,,,,,,文件名=& # 39;myapp.log& # 39; ,,,,,,,filemode=& # 39; w # 39;) #定义一个StreamHandler,将信息级别或更高的日志信息打印到标准错误,并将其添加到当前的日志处理对象# 时间=console logging.StreamHandler () console.setLevel (logging.INFO) 时间=formatter logging.Formatter(& # 39; %(名字)-12年代:,% (levelname) 8 s %(消息)& # 39;) console.setFormatter (formatter) logging.getLogger (& # 39; & # 39;) .addHandler(控制台) #输出到文件的日志级别为调试、输出到流的日志级别为信息 logging.debug(& # 39;却;能够is debug 消息# 39;) logging.info(& # 39;却;能够is info 消息# 39;) logging.warning(& # 39;却;能够is warning 消息# 39;)
<强> b,添加一个处理程序:输出到文件,并根据文件大小滚动存储强>
在的基础上添加一个处理程序
得到logging.handlers import RotatingFileHandler #定义一个RotatingFileHandler,最多备份5个日志文件,每个日志文件最大10 m 时间=Rthandler RotatingFileHandler (& # 39; myapp.log& # 39;,, maxBytes=10 * 1024 * 1024, backupCount=5) Rthandler.setLevel (logging.INFO) 时间=formatter logging.Formatter(& # 39; %(名字)-12年代:,% (levelname) 8 s %(消息)& # 39;) Rthandler.setFormatter (formatter) logging.getLogger (& # 39; & # 39;) .addHandler (Rthandler)怎么在Python中使用日志记录置模块