二、配置文件的方式
#logger.conf
#-------------------------------------------------------------------------
#define loggers...
[loggers]
keys=root,myLog
[logger_root]
level=INFO
handlers=myHandler
[logger_myLog]
level=DEBUG
handlers=myHandler,myHandlerPrint
qualname=myLog
propagate=0
#-------------------------------------------------------------------------
#define handlers...
[handlers]
keys=myHandler,myHandlerPrint
[handler_myHandler]
class=StreamHandler
level=DEBUG
formatter=myFormatter
args=(sys.stdout,)
[handler_myHandlerPrint]
class=FileHandler
formatter=myFormatterPrint
level=DEBUG
args=('python.log', 'w')
#-------------------------------------------------------------------------
#define formatters...
[formatters]
keys=myFormatter,myFormatterPrint
[formatter_myFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=
[formatter_myFormatterPrint]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=
#-------------------------------------------------------------------------、
test.py
TimedRotatingFileHandler(filename [,when [,interval [,backupCount]]])
filename 是输出日志文件名的前缀
when 是一个字符串的定义如下:
“S”: Seconds
“M”: Minutes
“H”: Hours
“D”: Days
“W”: Week day (0=Monday)
“midnight”: Roll over at midnight
interval 是指等待多少个单位when的时间后,Logger会自动重建文件,当然,这个文件的创建
取决于filename+suffix,若这个文件跟之前的文件有重名,则会自动覆盖掉以前的文件,所以
有些情况suffix要定义的不能因为when而重复。
backupCount 是保留日志个数。默认的0是不会自动删除掉日志。若设10,则在文件的创建过程中
库会判断是否有超过这个10,若超过,则会从最先创建的开始删除。
例如:
class=handlers.TimedRotatingFileHandler
level=DEBUG
formatter=myFormatter
args=('test.log','d',2,10)
2、RotatingFileHandler
RotatingFileHandler( filename[, mode[, maxBytes[, backupCount]]])
backupCount用于指定保留的备份文件的个数。比如,如果指定为2,当上面描述的重命名过程发生时,原有的chat.log.2并不会被更 名,而是被删除。
例如:
class=handlers.RotatingFileHandler
level=INFO
formatter=myFormatter
args=('test.log','a',10 * 1024,10)