log4p踩坑总结
log4p可以方便的打印格式化日志,在实际应用时,因没有好好理解官网中的配置文件,导致出错了几次。
现总结如下:
1. 安装
pip3 install log4p
2. 查看配置说明,请参考https://pypi.org/project/log4p/
3. 配置日志文件每天归档,注意class为 logging.handlers.TimedRotatingFileHandler,配置如下
"debug_file_handler": { "class": "logging.handlers.TimedRotatingFileHandler", "level": "DEBUG", "formatter": "detail", "filename": "log4p-debug.log", "when": "D", "interval": 1, "backupCount": 2, "encoding": "utf8" }
说明:上述配置为每天日志归档,backupCount为2:保留最近两天的日志,2天之前的日志会自动删除。
如果不配置when,interval信息,会每小时归档一次。
4. 配置日志文档大于10M后自动归档,class为 logging.handlers.RotatingFileHandler
"error_file_handler": { "class": "logging.handlers.RotatingFileHandler", "level": "ERROR", "formatter": "detail", "filename": "log4p-errors.log", "maxBytes": 10485760, "backupCount": 2, "encoding": "utf8" }
说明:上述配置为日志等于10M后归档,只保留近两个日志文件
log4p存在一个问题,设置每天归档日志,当第二天有新日志的时候,新日志最开始的一小部分会先写到前一天,后面的数据才会写到当天。
如果只是保持到一个日志文件,可以设置成
{
"class": "logging.handlers.RotatingFileHandler",
"level": "ERROR",
"formatter": "detail",
"filename": "log4p-errors.log",
"encoding": "utf8"
}