python中的logger之二
Rotating-logger
日志文件太大,一般不容易使用。现在的日志系统一般都提供了方便的日志回绕分片。一般有按照文件大小、记录时间长度来对日志文件分片。
在python logging中,提供了这2种分片方式。
- 按照文件大小分片
这种方式使用的Handler是RotatingFileHandler;
class RotatingFileHandler(BaseRotatingHandler):"""Handler for logging to a set of files, which switches from one fileto the next when the current file reaches a certain size."""def __init__(self, filename, mode='a', maxBytes=0, backupCount=0, encoding=None, delay=0):
下面看看使用方式:
rlogger = logging.getLogger("loggingtest2")
rfh = RotatingFileHandler("log/rtest.log", maxBytes=2000,backupCount=3)formatter = logging.Formatter('%(name)-12s %(asctime)s.%(msecs)03d %(levelname)-8s %(message)s', datefmt='%Y-%m-%d,%H:%M:%S')
rfh.setFormatter(formatter)rlogger.addHandler(rfh)
完整示例:
import sys,time
import logging
from logging.handlers import RotatingFileHandler,TimedRotatingFileHandlerrlogger = logging.getLogger("loggingtest2")
rfh = RotatingFileHandler("log/rtest.log", maxBytes=2000,backupCount=3)formatter = logging.Formatter('%(name)-12s %(asctime)s.%(msecs)03d %(levelname)-8s %(message)s', datefmt='%Y-%m-%d,%H:%M:%S')
rfh.setFormatter(formatter)rlogger.addHandler(rfh)rlogger.setLevel(level = logging.INFO)i = 0
while i<2000:rlogger.info("this is a %s %i.......","info",i)rlogger.warning("this is a %s %i........", "warning",i)i=i+1
执行时,会在log下生成rtest.log,以及分片的3个backup文件rtest.log.0, rtest.log.1, rtest.log.2
- 按照时间长度分片
这里使用的是TimedRotatingFileHandler。
定义如下:
class TimedRotatingFileHandler(BaseRotatingHandler):"""Handler for logging to a file, rotating the log file at certain timedintervals.If backupCount is > 0, when rollover is done, no more than backupCountfiles are kept - the oldest ones are deleted."""def __init__(self, filename, when='h', interval=1, backupCount=0, encoding=None, delay=False, utc=False):
使用方式:
formatter = logging.Formatter('%(name)-12s %(asctime)s.%(msecs)03d %(levelname)-8s %(message)s', datefmt='%Y-%m-%d,%H:%M:%S') trlogger = logging.getLogger()
trfh = TimedRotatingFileHandler("log/tr_test.log",when="S",interval=5,backupCount=3)trfh.setFormatter(formatter)
trlogger.addHandler(trfh)
完整示例:
import sys,time
import logging
from logging.handlers import RotatingFileHandler,TimedRotatingFileHandlerformatter = logging.Formatter('%(name)-12s %(asctime)s.%(msecs)03d %(levelname)-8s %(message)s', datefmt='%Y-%m-%d,%H:%M:%S') trlogger = logging.getLogger()
trfh = TimedRotatingFileHandler("log/tr_test.log",when="S",interval=5,backupCount=3)trfh.setFormatter(formatter)
trlogger.addHandler(trfh)trlogger.setLevel(level = logging.INFO)i=0
while i < 500:trlogger.info("this is a %s .......","info")trlogger.warning("this is a %s........", "warning")time.sleep(0.5)i=i+1
python中的logger之二相关推荐
- ML之XGBoost:XGBoost参数调优的优秀外文翻译—《XGBoost中的参数调优完整指南(带python中的代码)》(二)
ML之XGBoost:XGBoost参数调优的优秀外文翻译-<XGBoost中的参数调优完整指南(带python中的代码)>(二) 目录 2. xgboost参数/XGBoost Para ...
- python画抛物线_在python中利用最小二乘拟合二次抛物线函数的方法
1.最小二乘也可以拟合二次函数 我们都知道用最小二乘拟合线性函数没有问题,那么能不能拟合二次函数甚至更高次的函数呢?答案当然是可以的.下面我们就来试试用最小二乘来拟合抛物线形状的的图像. 对于二次函数 ...
- python中常用的模块二
一.序列化 指:在我们存储数据的时候,需要对我们的对象进行处理,把对象处理成方便存储和传输的数据格式,这个就是序列化, 不同的序列化结果不同,但目的是一样的,都是为了存储和传输. 一,pickle.可 ...
- python中数据类型转换_Python(二).数据类型,数据类型转换
数据类型 在python中,能够直接处理的的数据类型有以下几种:(这里似乎说法不一样,我这里仅表示自己的观点) (1).数字(Number) (2).字符串(String) (3).布尔值(Bool) ...
- Python 中的黑暗角落(二):生成器协程的调度问题
前作介绍了 Python 中的 yield 关键字.此篇介绍如何使用 yield 表达式,在 Python 中实现一个最基本的协程调度示例,避免 I/O 操作占用大量 CPU 计算时间. 协程及其特点 ...
- Python中的模块(二)
九.requests Python标准库中提供了:urllib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作,甚至包括各种方法覆盖,来完成 ...
- python中的logger之一
简介 基本每种开发语言都有对应的logger库提供,以方便输出和记录logger. python内也提供了logger包,可以方便地使用. 简单使用 首先,需要import日志包logger impo ...
- python中的logger模块详细讲解
logger 提供了应用程序可以直接使用的接口 handler将(logger创建的)日志记录发送到合适的目的输出 filter提供了细度设备来决定输出哪条日志记录 formatter决定日志记录的最 ...
- python中序列类型是二维元素向量吗_序列类型是二维元素向量,元素之间存在先后关系,通过序号访问。...
[填空题]MapReduce 计算模式中, Map (映射)的主要任务是:负责输入数据的 . . ,输出 . [多选题]大数据的特征包括( ). [判断题]中断服务过程中如果允许中断嵌套,则优先级高的 ...
最新文章
- 标准C++中的string类的用法总结
- python基本使用-Python time库基本使用方法分析
- python画图中grid等于true_Python3.0科学计算学习之绘图(二)
- Java_输出60的十六进制
- DM365的BSP源码分析-基于2.6.18内核
- asp.net的一些对话
- linux 链表头文件,Linux下单链表的实现
- 安卓7.0海信定制版新增功能
- 读《scikiit-learn机器学习》支持向量机
- gmm中隐变量是什么的_隐变量是什么?
- 牛客网暑期ACM多校训练营(第五场)B. div(技巧+OEIS or Pell方程)
- LeetCode题解答案集合(完全版) Python
- 微服务的数据聚合Join
- E3亮点:StudioMDHR的《茶杯头》
- 【小程序源码】uni-app云开发的网盘助手抓取网盘资源
- docker 安装及部署
- 【Python二级等考大题】星座三问
- Day 11-常用 Composition API_shallowReactive shallowRef
- 股票技术分析--任正德主编
- 找个程序员做男朋友好难啊