一、日志级别

loging.debug('This is debug message'):最低级别,一般开发人员用来打印一些调试信息

loging.info('This is info message'):正常输出信息,一般用来打印一些正常的操作

loging.warning('This is warningmessage'):一般用来打印告警信息

loging.error('This is warning message'):一般用来打印一些错误信息

loging.critical('This is criticalmessage'):一般用来打印一些致命的错误信息

日志的运行级别:CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET,当然也可以自己定义日志级别

二、logging.basicConfig函数参数

filename: 指定日志文件名
filemode: 和file函数意义相同,指定日志文件的打开模式,'w'或'a'
format: 指定输出的格式和内容,format可以输出很多有用信息,如上例所示:
 %(levelno)s: 打印日志级别的数值
 %(levelname)s: 打印日志级别名称
 %(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]
 %(filename)s: 打印当前执行程序名
 %(funcName)s: 打印日志的当前函数
 %(lineno)d: 打印日志的当前行号
 %(asctime)s: 打印日志的时间
 %(thread)d: 打印线程ID
 %(threadName)s: 打印线程名称
 %(process)d: 打印进程ID
 %(message)s: 打印日志信息
datefmt: 指定时间格式,同time.strftime()
level: 设置日志级别,默认为logging.WARNING
stream: 指定将日志的输出流,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当stream和filename同时指定时,stream被忽略

固定的写日志格式:%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s:%(message)s(时间 - 文件名:文件第几行-日志级别:打印的信息内容)

但以这种方式写日志,只能写入到文件中,不能输出到屏幕上,但是呢在日常工作中,我们即想把日志输出到屏幕方便我们调试,同时也希望把日志写到文

件里,还有另外一种方式,利用Handler日志处理器其中的StreamHandler和FileHandler

写日志步骤:

1、创建logger

2、创建handler

3、定义formatter

4、给handler添加formatter

5、给logger添加handler

logger可以看做是一个记录日志的人,对于记录的每个日志,他需要有一套规则,比如记录的格式(formatter),等级(level)等等,这个规则就是handler。

使用logger.addHandler(handler)添加多个规则,就可以让一个logger记录多个日志。

handlers.TimedRotatingFileHandler(
'my.log',when='S',encoding='utf-8',backupCount=5
)

第一个参数:指定日志文件名称

第二个参数when:是隔多久生成一个日志,单位包括 S 秒、M 分、 H 小时、 D 天、 W 每星期(interval==0时代表星期一)、midnight 每天凌晨

第三个参数backupCount:是保存几个日志文件,不包括初始生成的日志文件数量my.log

Handler 日志处理器:最常用的是StreamHandler和FileHandler, Handler用于向不同的输出端打log,Logging包含很多handler, 可能用到的有下面几种:

StreamHandler instances send error messages to streams (file-like objects)

FileHandler instances send error messages to disk files.

RotatingFileHandler instances send error messages to disk files, with support for maximum log file sizes and log file rotation.

TimedRotatingFileHandler instances send error messages to disk files, rotating the log file at certain timed intervals.

SocketHandler instances send error messages to TCP/IP sockets.

DatagramHandler instances send error messages to UDP sockets.

SMTPHandler instances send error messages to a designated email address.

以下是简单的封装的一个通用的写日志函数:

 

posted on 2018-03-14 19:10  luoqingqing6  阅读(158)  评论(0编辑  收藏  举报